1、本人在SqlServer编写了一个存储过程如下:
ALTER   Procedure pLab_GrHz(@ny varchar(6))
As  Delete Lab_GrHz where GrHz_ny=@ny insert into Lab_GrHz(GrHz_ny,GrHz_ygbh)
Values('sdlkfjsldkjfalsdjflasdf','0000')

if @@error<>0  
Goto ErrHandle
  Return(0)
ErrHandle:
Raiserror('错误!!!',16,1)
return(-1)

GO2、其中GrHz_ny的长度只有6 位.GrHz_ygbh的长度为10位,都是Varchar型的。
3、在前台Delphi中的执行语句为:
  Try
      AdoConnection1.Execute('pLab_GrHz ''200608''');
      ShowMessage('Ok');
  Except
    on E:Exception do
    begin
      ShowMessage(e.Message);
    end;
  end;问题:Delphi不能返回存储过程pLab_GrHz运行的错误。
但时如果将存储过程为以下时:
ALTER   Procedure pLab_GrHz(@ny varchar(6))
As  insert into Lab_GrHz(GrHz_ny,GrHz_ygbh)
Values('sdlkfjsldkjfalsdjflasdf','0000')

if @@error<>0  
Goto ErrHandle
  Return(0)
ErrHandle:
Raiserror('错误!!!',16,1)
return(-1)

GO前台的程序又能返回后台存储过程的运行错误。
不知什么原因,请各位高手指定一下。