ADODB连接来运行SQL Server的过程
问题描述:
我目前正试图运行在VB6一定程序(SQL 2005),传递一些参数: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是通用的,我不知道问题出在哪里。
我做错了什么?
下面是在程序中的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
有人告诉我,不是每一个参数应该被通过,它应该只有五(出七)工作。
答
你在哪里设置存储过程的名称? cmd.CommandName = ....
编辑:设置CommandName
存储过程的名称,你就开始打电话Parameters.Append