ADO: автоматическое заполнение параметров процедуры по указанной базе данных - PullRequest
0 голосов
/ 06 ноября 2018

Когда мы вызываем хранимую процедуру СУБД в VBA с ADO без имени базы данных:

Dim cmd As New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "SomeProc"
cmd.Parameters(1) = "someArg"
cmd.Execute

ADO автоматически заполняет коллекцию cmd.Parameters, она становится готовой к использованию. Мы можем видеть это в окне Locals редактора VBA. Но если имя процедуры указано с именем базы данных и / или для MS SQL Server, именем схемы (DbName.dbo.SomeProc), параметры не заполняются, и возникает следующая ошибка:

Ошибка времени выполнения '-2147217904 (80040e10)':

Процедура или функция '' ожидает параметр '@ ', который не был предоставлен.

Процедура может быть в текущей базе данных (Initial Catalog строки подключения), как и в первом случае, - вызов с полным именем не удастся, с коротким - нет. Мы можем вручную добавить параметры в коллекцию, но как насчет первого случая?

Можно ли заставить ADO подготовить объекты Parameter, если указано имя базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...