【问题标题】:Calling a SQL Stores Procedure with single input parameter in VB6在 VB6 中使用单个输入参数调用 SQL 存储过程
【发布时间】:2015-12-21 04:34:15
【问题描述】:

我正在尝试在 VB6 中调用具有单个输入参数的 SQL 存储过程。基本上,VB6 应用程序交出供应商编号并检查该供应商编号的发票状态,如果状态 = A,则返回假值,其他任何东西都返回真值。我有我的存储过程在 SQL 中工作,但是当我在我的应用程序中调用它时,我无法让它工作。

这是我目前所拥有的。

这是我的按钮点击:

Dim cmd As ADODB.Command 
Public dc As New DataConnection 

Private sub btnCheckStatus_Click()
Set cmd = New ADODB.Command 
    cmd.ActiveConnection = dc
    cmd.CommandType = adCmdStoredProc 
    cmd.CommandText = "[dbo].[CheckStatus]" 
    cmd.Parameters.Append cmd.CreateParameter("@VendorNumber", adInteger, adParamInput, "6", VendorNumber) 
    cmd.execute 
BalanceStatus = cmd(result) 
Set cmd.ActiveConnection = Nothing 

我似乎无法从存储过程中得到结果,我试图将它设置为一个变量但它不起作用,它给了我一个类型不匹配的错误

【问题讨论】:

    标签: sql stored-procedures vb6 adodb


    【解决方案1】:

    必须设置一个记录集来保存所有信息并将其分配给我的状态变量。

        Dim cmd As ADODB.Command
        Dim rs As New ADODB.Recordset
        Public dc As New DataConnection   
    
                    Set cmd = New ADODB.Command
                        cmd.ActiveConnection = Connection.dc.conn
                        cmd.CommandType = adCmdStoredProc
                        cmd.CommandText = "[dbo].[CheckStatus]"
                        cmd.Parameters.Append cmd.CreateParameter("VendorNumber", adInteger, adParamInput,6, VendorNumber)
    
                    Set rs = cmd.execute
    
                    If Not rs.EOF Then
                        BalanceStatus = rs.Fields(0)
                    End If
    

    【讨论】:

      猜你喜欢
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      相关资源
      最近更新 更多