存储过程是这么写的,
Declare @id int
BEGIN TRANSACTION
Insert into xxxxxTable(f1,f2)values(@a,@b)
Select @id=@@identity
Insert into abcTable(ff1,ff2,ff3)values(@c,@id,@dd) IF @@error <> 0 --发生错误
BEGIN
ROLLBACK TRANSACTION
RETURN 0
END
ELSE
BEGIN
COMMIT TRANSACTION
RETURN 1 --执行成功
END我想知道,应用程序如何知道存储过程返回了1还是0呢?
Declare @id int
BEGIN TRANSACTION
Insert into xxxxxTable(f1,f2)values(@a,@b)
Select @id=@@identity
Insert into abcTable(ff1,ff2,ff3)values(@c,@id,@dd) IF @@error <> 0 --发生错误
BEGIN
ROLLBACK TRANSACTION
RETURN 0
END
ELSE
BEGIN
COMMIT TRANSACTION
RETURN 1 --执行成功
END我想知道,应用程序如何知道存储过程返回了1还是0呢?
解决方案 »
- delphi如何实现多条件模糊查询
- dll中调用webservice总是不成功
- ClientDataSet提交数据库的问题!要仔细调试才能出来的错误! 200508
- CloseFile Close 的区别
- 热烈庆祝唐山新维软件开发有限公司成立2周年
- 走,还是留,兄弟们给个建议好不?谢谢了
- 初学提问:请问怎样得到指定字符串在另一个字符串的位置?
- 如何在PopupMenu和Listbox中加入复选框checkbox,请说详细步骤,谢谢!
- 提个与Delphi无关的问题,有关考研...
- 求助解决高效读、写xlsx问题
- 无聊散分,夜猫接分
- Run->Parameters无法成功调试dll,而showMessage也有困难,请教
if not 存储过程名 then
begin
执行存储过程;
变量=1; //真
end
else
变量=0;
详细请参阅SQLSERVER帮助,肯定会有更多的收获。
在delphi中以参数形式就能获取值。
ADOStoredProc1.Close;
ADOStoredProc1.ProcedureName := 'procedurename';
ADOStoredProc1.Parameters.Clear;
ADOStoredProc1.Parameters.CreateParameter('@i', ftString, pdOutput,250, '');
ADOStoredProc1.ExecProc;
caption:=ADOStoredProc1.Parameters.parambyname('@i').Value;如果不改存储过程,则在open之后用FieldValues[0]可以取得