现在有一个存储过程:   脚本如下:
    create PROCEDURE  p1
    (@oper_code  [char](10), 
         @key_code  [char](10))
         
         
     declare 
         declare @A Char(10)
         declare @B Char(10)
         declare @C Char(10)
         declare @D Char(10)
         declare @HintMsg1 Char(100)
         
         ----数据查询-------
         Select @A=A,@B=B,@C=C,@D=D       from  TABLE
          where  KEY=@key_code
          
      ---调用另一个存储过程    
       EXEC  P2  @a, @b, @c, @D ,@HintMsg=@HintMsg1 OUTPUT
       
    IF  @HintMsg1<>'成功!'
     BEGIN
      RAISERROR(@HintMsg1,17,1)   
     END
     
     
在 ms sql 2000 中使用 语句:
    exec p1 'a','b' 进行 调用,可以正常的返回错误信息。但是在delphi 中调用
  query1.close;
  query1.sql.text:='  exec p1 ''a'',''b'' ';
  query1.exec;  执行时,却没有信息返回,不知道是什么原因/

解决方案 »

  1.   

    query1.close;
    query1.sql.text:='  exec p1 ''a'',''b'' ';
    query1.open;
      

  2.   

    我记得是QUERY。EXEC 然后再OPEN就有结果
      query1.close;
      query1.sql.text:='  exec p1 ''a'',''b'' ';
      query1.exec;
    query1.open;
      

  3.   

    没有把返回值return出来,或者用一个OUTPUT参数输出