ADOStoredProc.Parameters.ParamByName('@EmpNextNo').Value

解决方案 »

  1.   

    天啊 ,我知道,但是我想知道
    操作后,Recordaffected所影响的记录数目。
      

  2.   

    存储过程里在加一个参数
    @rec_aff int Output
    在存储过程体中加
    set @rec_aff=@@ROWCOUNT在delphi中用
    ADOStoredProc.Parameters.ParamByName('@Rec_aff').Value读出来
      

  3.   

    在存储过程参数部分加
    @ret_var int output
    在过程体中加
    set @ret_var=@@ROWCOUNT
    在delphi中用
    ADOStoredProc.Parameters.ParamByName('@ret_var').Value读出
      

  4.   

    在D中真的只有这个方法吗??????????
    在VB中可不是这样的啊,请大家帮帮我吧,分可以继续加的。。
      

  5.   

    我给你贴一段例子,希望对你有帮助存储过程:
    USE pubs
    GO
    CREATE PROCEDURE myProc
    @outparm      int      OUTPUT
    @inparm      int
    AS
    SELECT * FROM titles WHERE royalty > @inparm
    SELECT @outparm = COUNT (*) FROM TITLES WHERE royalty > @inparm
    IF (@outparm > 0)
    RETURN 0
    ELSE
    RETURN 99
    GOvb:Dim cn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rs As New ADODB.Recordset
    Dim fldloop As ADODB.Field
    Dim param1 As Parameter, param2 As Parameter, param3 As Parameter
    Dim provStr As String
    Dim royalty As Variant
        
    Private Sub spStart()' Connect using the SQLOLEDB provider.
    cn.Provider = "sqloledb"' Specify connection string on Open method.
    provStr = "Server=MyServer;Database=pubs;Trusted_Connection=yes"
    cn.Open provStr' Set up a command object for the stored procedure.
    Set cmd.ActiveConnection = cn
    cmd.CommandText = "myProc"
    cmd.CommandType = adCmdStoredProc' Set up a return parameter.
    Set param1 = cmd.CreateParameter("Return", adInteger, adParamReturnValue)
    cmd.Parameters.Append param1
                
    ' Set up an output parameter.
    Set param2 = cmd.CreateParameter("Output", adInteger, adParamOutput)
    cmd.Parameters.Append param2
      
    ' Set up an input parameter.
    Set param3 = cmd.CreateParameter("Input", adInteger, adParamInput)
    cmd.Parameters.Append param3
    royalty = Trim(InputBox("Enter royalty:"))
    param3.Value = royalty' Execute command, and loop through recordset, printing out rows.
    Set rs = cmd.ExecuteDim i As Integer
    While Not rs.EOF
        For Each fldloop In rs.Fields
            Debug.Print rs.Fields(i)
            i = i + 1
        Next fldloop
        Debug.Print ""
        i = 0
        rs.MoveNext
    Wend' Need to close recordset before getting return 
    ' and output parameters.
    rs.CloseDebug.Print "Program ended with return code: " & Cmd(0)
    Debug.Print "Total rows satisfying condition: " & Cmd(1)
    cn.CloseEnd Sub
      

  6.   

    谢谢大家的,
    我昨晚对下句进行了测试,
    Select @EmpNextNo = min(empno) From Emp Where empno > @Empno
    发现有无合条件的都会返回一个记录。证明@@RowCount是行不通的。所以我只能改变了写法:谢谢(飞飞)(风舞轻扬)