2010-02-23 6 views
0

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

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 

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

alt text http://dl.dropbox.com/u/3045472/ERRO.png

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

Это сообщение REA LLY generic, и я не знаю, где может возникнуть проблема.

Что я сделал неправильно?

Здесь параметр передающую часть кода 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

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

EDIT: Установите CommandName на имя хранимой процедуры, прежде чем начать называть Parameters.Append

 Смежные вопросы

  • Нет связанных вопросов^_^