事务 goto 小问题,但造成大麻烦

m54772091 2007-03-22 09:49:47
我的代码:
BEGIN TRANSACTION
DELETE FROM table1 if @@error<>0 goto WRONG
DELETE FROM table2 if @@error<>0 goto WRONG
...
COMMIT
WRONG: ROLLBACK

我用goto 目的是,如果有错误了就不要再处理后面的代码(量很大),直接跳到最后回滚

系统报错(我用AdoQuery)
我想是不是如果 commit 提交后 又要 ROOLBACL 所以报错 改了一下

DECLARE @bErrors as bit
BEGIN TRANSACTION SET @bErrors=0
DELETE FROM table1 if @@error<>0 begin set @bErrors=1 goto WRONG end
DELETE FROM table2 if @@error<>0 begin set @bErrors=1 goto WRONG end
...
COMMIT
WRONG: if @bErrors=1 ROLLBACK

在DEPHI 编译中报错 “不正常地定义了参数对象,提供了不一致或不完整的信息”

呵呵 ,我把代码拷贝到查询分析器里运行 一切正常???
...全文
176 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaper 2007-03-24
  • 打赏
  • 举报
回复
_-##
汗一个 JF

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧