Delphi 事务处理的问题(急)

wojiuxihuan 2007-10-26 05:14:51
sql := 'Insert Into Project(ProjectId) Values(3)';
sql := 'Update Bill set ItemCode = '''+aaa+''' Where BillID=1';
这两条插语句用TADOConnection的事务处理
怎么写啊
with FDataDM.ADOConn2 do
begin
Open;
BeginTrans;
try
sql := 'Insert Into Project(ProjectId) Values(3)';
Execute(sql);
sql := 'Update Bill set ItemCode = '''+aaa+''' Where BillID=1';
Execute(sql);
CommitTrans;
finally
RollbackTrans;
end;
end;
为什么这样写会提示“试着不先使用BeginTrans而提交或退回事务”
是不是跟Access数据库有关

在线等!!!!!!!!!!!!!
...全文
129 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wojiuxihuan 2007-10-26
  • 打赏
  • 举报
回复
谢谢各位了
天行归来 2007-10-26
  • 打赏
  • 举报
回复
with FDataDM.ADOConn2 do
begin
Open;
BeginTrans;
try
sql := 'Insert Into Project(ProjectId) Values(3) ';
Execute(sql);
sql := 'Update Bill set ItemCode = ' ' '+aaa+ ' ' ' Where BillID=1 ';
Execute(sql);
CommitTrans;
finally //应该是异常才回滚。修改成 except
RollbackTrans;
end;
end;

出现问题:程序正常执行情况下,会提交事务,而后又执行了RollbackTrans,此时,事务已经结束,就出现你的错误提示了。
Bear_hx 2007-10-26
  • 打赏
  • 举报
回复
你要先开始事务
hsmserver 2007-10-26
  • 打赏
  • 举报
回复
try
except
end;

2,497

社区成员

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

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