我在数据库中定义了如下一个存储过程请问在vb中怎样调用(即是在一form上有text1,text2用于输入的,而text3用于输出两参数运算的结果)。
create procedure Param
   @m int,
   @n int,
   @result int output
as
  if @m>0 and @n>0 
    set @result=@m*@n
  else
    set @result=0

解决方案 »

  1.   

    Dim cn As New adodb.Connection
        Dim cmd As New adodb.Command
        Dim ParamTemp As adodb.Parameter
        
        cn.ConnectionString = "Provider=SQLOLEDB;Data Source=servername;User Id=sa;PassWord=***;Initial Catalog=testdb"
        cn.CursorLocation = adUseClient
        cn.Open
        cmd.CommandText = "Param"
        cmd.CommandType = adCmdStoredProc
        cmd.ActiveConnection = cn
        Set ParamTemp = cmd.CreateParameter("m1", adInteger, adParamInput)
        ParamTemp.Value = CInt(text1.Text)
        cmd.Parameters.Append ParamTemp
        Set ParamTemp = cmd.CreateParameter("m2", adInteger, adParamInput)
            ParamTemp.Value = CInt(text2.Text)
        cmd.Parameters.Append ParamTemp
        Set ParamTemp = cmd.CreateParameter("m3", adNumeric, adParamOutput)
        cmd.Parameters.Append ParamTemp
        cmd.Execute
        text3.Text = ParamTemp.Value
        Set cmd = Nothing
        cn.Close
        Set cn = Nothing
      

  2.   

    老兄:若我在数据库中的存储过程该为如下请问在vb中怎样调用(即是在一form上有text1,text2用于输入的,而text3,text4用于输出两参数运算的结果)。在此先谢了!
    create procedure Param
       @m int,
       @n int,
       @result1 int output,
       @result2 int output
    as
      if @m>0 and @n>0 
        begin 
          set @result1=@m*@n
          set @result2='test'
        end
      else
        begin
          set @result1=0
          set @result2='fail'
       end
      

  3.   

    Dim ParamTemp1 As adodb.Parameter
        Dim ParamTemp2 As adodb.Parameter    ....
        ....
        Set ParamTemp1 = cmd.CreateParameter("m3", adNumeric, adParamOutput)
        cmd.Parameters.Append ParamTemp1
        Set ParamTemp2 = cmd.CreateParameter("m4", adNumeric, adParamOutput)
        cmd.Parameters.Append ParamTemp2
        cmd.Execute
        text3.Text = ParamTemp1.Value
        text4.Text = ParamTemp2.Value
        Set cmd = Nothing
        cn.Close
        Set cn = Nothing
      

  4.   

    Set ParamTemp2 = cmd.CreateParameter("m4", adNumeric, adParamOutput)
    改为
    Set ParamTemp2 = cmd.CreateParameter("m4", adVarChar, adParamOutput)