【问题标题】:ADODB connection to run SQL Server Procedure运行 SQL Server 过程的 ADODB 连接
【发布时间】:2010-02-23 13:12:13
【问题描述】:

我目前正在尝试在 VB6 中运行某个过程(sql 2005),并传递一些参数:

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

英文是这样写的: “语法错误或访问冲突”

此消息非常笼统,我不知道问题出在哪里。

我做错了什么?

这里是过程中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 

有人告诉我,不是每个参数都应该被传递,它应该只使用五个(共七个)。

【问题讨论】:

    标签: sql connection adodb procedure


    【解决方案1】:

    你在哪里设置存储过程的名称?
    cmd.CommandName = ....

    编辑:在开始调用 Parameters.Append 之前,将 CommandName 设置为存储过程的名称

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多