我有一个存储过程,用delphi6.0企业版开发程序前台调用后台sqlserver数据库,比如存储过程名称为:p_abc,其代码如下:alter procedure p_abc
@id int
as
begin
if @id=0
begin
declare @t table(ID int,amount int)
insert into @t select 1,40000
raiserror('dd',16,1)
return 1 end
end我发现一个问题,我在前台调用时,我用的控件是:TADOCommand,前台代码如下:
ADOCommand1.Parameters.Refresh;
ADOCommand1.Parameters.ParamValues['@id']:=0;
ADOCommand1.Execute;执行没有任何提示。要想提示,只能把存储过程的“insert into @t select 1,40000”代码去掉,就可以提示。
如果把Tadocommand改为TADODataSet时(保留存储过程的“insert into @t select 1,40000”代码),前台代码如下 :
ADODataSet1.Parameters.Refresh;
ADODataSet1.Parameters.ParamValues['@id']:=0 ;
ADODataSet1.Open;就可以在前台显示,但如果我要用Tadocommand时,如何做呢?
@id int
as
begin
if @id=0
begin
declare @t table(ID int,amount int)
insert into @t select 1,40000
raiserror('dd',16,1)
return 1 end
end我发现一个问题,我在前台调用时,我用的控件是:TADOCommand,前台代码如下:
ADOCommand1.Parameters.Refresh;
ADOCommand1.Parameters.ParamValues['@id']:=0;
ADOCommand1.Execute;执行没有任何提示。要想提示,只能把存储过程的“insert into @t select 1,40000”代码去掉,就可以提示。
如果把Tadocommand改为TADODataSet时(保留存储过程的“insert into @t select 1,40000”代码),前台代码如下 :
ADODataSet1.Parameters.Refresh;
ADODataSet1.Parameters.ParamValues['@id']:=0 ;
ADODataSet1.Open;就可以在前台显示,但如果我要用Tadocommand时,如何做呢?
你可以通过return不同的整型值来判断是否有错误发生,而不用raisError