执行一个存贮过程出错,在哪可以得到返回错误号? ( 积分: 100 )

  • 主题发起人 主题发起人 flysand
  • 开始时间 开始时间
F

flysand

Unregistered / Unconfirmed
GUEST, unregistred user!
用clientdataset.Execute执行一个MSSQL2000中的一个存贮过程执行时出错,
该过程会返回一个整型值,
从何处可以取得该值
存贮过程如下:
create PROCEDURE myProc
AS
insert into mytable (f1) values ('sdfsd')
if @@error<>0 begin
ROLLBACK TRAN
return 100 -----当出错时,过程会返回该值(100),从clientdataset中如何取得该值?
end
COMMIT TRAN


 
用clientdataset.Execute执行一个MSSQL2000中的一个存贮过程执行时出错,
该过程会返回一个整型值,
从何处可以取得该值
存贮过程如下:
create PROCEDURE myProc
AS
insert into mytable (f1) values ('sdfsd')
if @@error<>0 begin
ROLLBACK TRAN
return 100 -----当出错时,过程会返回该值(100),从clientdataset中如何取得该值?
end
COMMIT TRAN


 
CREATE FUNCTION
创建用户定义函数,它是返回值的已保存的 Transact-SQL 例程。用户定义函数不能用于执行一组修改全局数据库状态的操作。与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE 语句执行。
语法
标量函数
CREATE FUNCTION [ owner_name.] function_name
( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH <
function_option>
[ [,] ...n] ]
[ AS ]
begin
function_body
RETURN scalar_expression
END
 
为存储过程增加一个输出变量
create PROCEDURE myProc
@err int output
AS
insert into mytable (f1) values ('sdfsd')
if @@error<>0 begin
ROLLBACK TRAN
@err=100
end
COMMIT TRAN

客户端取返回值
clientdataset.params.paramsbyname('@err').value;

 
樓上的可以。
errorIn := clientdateset.params.parambyName('@err').value;
 
Params[0].AsInteger
 
hunterfall的方法是不可以得到数据的!delphi会提示没有声名参数的!
其他人的回答只是另一种解决例子的办法,并非题目的要求
 
后退
顶部