我想在存储过程里有Delphi 中是 try 的功能吗?
比如说:
有表 T1
内有字段 F1
check 约束 >0
我在存储过程里写
Insert into T_1(F1) values('-1')
if @@error=547
begin
@ReturnMSG='Must > 0'
@ReturnValue='0'
end可是一般到 Insert Into 就出错了,下面就不执行了。
放前面处理是可以,但是多起来很麻烦
还请高手指教
比如说:
有表 T1
内有字段 F1
check 约束 >0
我在存储过程里写
Insert into T_1(F1) values('-1')
if @@error=547
begin
@ReturnMSG='Must > 0'
@ReturnValue='0'
end可是一般到 Insert Into 就出错了,下面就不执行了。
放前面处理是可以,但是多起来很麻烦
还请高手指教
解决方案 »
- 这个简单控件-------请问如何写?
- richedit的字体问题
- 如何使dbgrideh在Append操作时的焦点落在第1列呢?(急!)
- 说说大家在有空的时候都看看什么杂志呢?
- 请教如何用socket发送Http请求头信息(分会加到2000)
- 本人用DELPHI开发数据库程式已近5年,但还是觉得要多多交流,,,,,,
- 如何可以不退出界面,连续调用word?
- 求北京兼职delphi程序员
- 有谁知道:触摸屏程序是如何开发的?
- 一个送分的问题,大家快来拿.....^_^
- ADDConnection.Execute(s)中的日期参数问题,解决高分?
- 在delphi中加入voloview控件解决旋转的问题
if @@error=547
begin
@ReturnMSG='Must > 0'
@ReturnValue='0'
end
commit transaction
GO
Insert into T_1(F1) values('-1')
excpet
@ReturnMSG='Must > 0'
@ReturnValue='0'
end;
实现这种功能
但是对输入值的约束只能放前面,这样,很多操作要重写函数,
但是如果可以放在后面的话。我只要断送@@error 这个的值就是判断是什么错了
begin tran
Insert into T_1(F1) values('-1')
if @@error=547
begin
@ReturnMSG='Must > 0'
@ReturnValue='0'
rollback tran
end
commit tran
Insert into T_1(F1) values('-1')
excpet
select 0 as ReturnValues,'547 Error' as REturnMSG
end;
实现这种功能
Insert into T_1(F1) values('-1');
EXCEPTION
WHEN error=547 THEN
ReturnMSG := ('Must > 0');
ReturnValue :='0';
END; Oracle中, 呵呵
说得对