存储过程如下:
CREATE PROCUDRUE HSM
@SUM MONEY OUTPUT
AS
SELECT * FROM TABLE
SELECT @SUM=HSM.A FROM (SELECT SUM(PRI) AS A FROM TABLE) AS HSM
IF (@@ERROR<>0) 
RETURN
GO
我在DELPHI中的按纽单击事件中写的代码如下 
adostoredproc1.Close; 
adostoredproc1.Prepared:=flase;
edit1.text:=adostoredproc1.Parameters.ParamValues['@sum'].value; 
adostoredproc1.Prepared:=true; 
adostoredproc1.ExecProc; 可当单击按纽时返回一0
然后才是正确的答案
如果把存储过程中的
SELECT * FROM TABLE
一句去掉则运行错误:COMMANDTEXT DOESNOT RETURN A RESULT SET

解决方案 »

  1.   

    CREATE PROCUDRUE HSM
    @SUM MONEY OUTPUT
    AS
    set nocount on
    SELECT * FROM TABLE
    SELECT @SUM=HSM.A FROM (SELECT SUM(PRI) AS A FROM TABLE) AS HSM
    set nocount off
    GO
      

  2.   

    set nocount on
    加上它还是不沾
    还是出现老样子
    先返回一个0
    然后才是正确答案
      

  3.   

    adostoredproc1.Close; 
    adostoredproc1.Prepared:=flase;
    edit1.text:=adostoredproc1.Parameters.ParamValues['@sum'].value; 
    adostoredproc1.Prepared:=true; 
    adostoredproc1.open;
      

  4.   

    取得output参数值
    aa:=adostoredproc1.Parameters.ParamValues['@sum'].value;