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前台的程序又能返回后台存储过程的运行错误。
不知什么原因,请各位高手指定一下。
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前台的程序又能返回后台存储过程的运行错误。
不知什么原因,请各位高手指定一下。
ALTER Procedure pLab_GrHz(@ny varchar(6))
As Delete Lab_GrHz where GrHz_ny=@nyif @@error<>0
Goto ErrHandleinsert into Lab_GrHz(GrHz_ny,GrHz_ygbh)
Values('sdlkfjsldkjfalsdjflasdf','0000')if @@error<>0
Goto ErrHandle
Return(0)
ErrHandle:
Raiserror('错误!!!',16,1)
return(-1)