ADODB соединение для запуска SQL Server - PullRequest
0 голосов
/ 23 февраля 2010

В настоящее время я пытаюсь запустить определенную процедуру (sql 2005) в VB6, передавая некоторые параметры:

Dim conn As Connection
Set conn = New Connection
conn.Open "Provider=whateverprovider;Data Source=whateversource;Database=whateverdatabase;User Id=whateverID;Password=whatever"
Dim CMD As ADODB.Command
Dim rs As ADODB.Recordset
Set CMD = New ADODB.Command
Set CMD.ActiveConnection = conn
CMD.CommandType = adCmdStoredProc
CMD.Parameters.Append CMD.CreateParameter("@EmpresaCNPJ", adVarChar, adParamInput, 14, "64687015000152")
CMD.Parameters.Append CMD.CreateParameter("@EntradaSaida", adChar, adParamInput, 1, "S")
CMD.Parameters.Append CMD.CreateParameter("@Participante", adVarChar, adParamInput, 60, "0000000020")
CMD.Parameters.Append CMD.CreateParameter("@nroNotaFiscal", adInteger, adParamInput)
CMD.Parameters("@nroNotaFiscal").Value = 2289
CMD.Parameters.Append CMD.CreateParameter("@serieNotaFiscal", adSmallInt, adParamInput)
CMD.Parameters("@serieNotaFiscal").Value = 1
Set rs = CMD.Execute

В последней строке я получаю следующее сообщение об ошибке:

альтернативный текст http://dl.dropbox.com/u/3045472/ERRO.png

Который на английском языке гласит: «синтаксическая ошибка или нарушение прав доступа»

Это сообщение ДЕЙСТВИТЕЛЬНО общее, и я понятия не имею, где может быть проблема.

Что я сделал не так?

Вот параметр, принимающий часть кода SQL в процедуре:

   @EmpresaCNPJ varchar(14), 
   @EntradaSaida char(1)=null, 
   @Participante varchar(60)=null, 
   @nroNotaFiscal int=null, 
   @serieNotaFiscal smallint=null, 
   @EtapaInicial tinyint=null, 
   @LineComplement varchar(255)=null 

Мне сказали, что не каждый параметр должен быть передан и что он должен работать только с пятью (из семи).

1 Ответ

1 голос
/ 23 февраля 2010

Где вы устанавливаете имя хранимой процедуры?
cmd.CommandName = ....

РЕДАКТИРОВАТЬ: Установите CommandName на имя хранимой процедуры, прежде чем вы начнете вызывать Parameters.Append

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