有一表中有字段 id ,然后有个flag的标记 值为0或者1,当查出某个ID对应的值后点击确认按钮就,修改这个flag的值为1,可以同时查出多条数据,
原来我用了一条语句去修该 条件语句如下
where id in ('xxx','xxxx','xxx')
;但是要求要用循环修改 ,也就是每个值 就执行一次修改语句,并且前面要加事务语句,没写过事务,哪位高手能给个例子么,最好是能对例子进行讲解一下,小弟唯有以100%的结贴率来回报大家。
原来我用了一条语句去修该 条件语句如下
where id in ('xxx','xxxx','xxx')
;但是要求要用循环修改 ,也就是每个值 就执行一次修改语句,并且前面要加事务语句,没写过事务,哪位高手能给个例子么,最好是能对例子进行讲解一下,小弟唯有以100%的结贴率来回报大家。
解决方案 »
- 主窗体最小化到任务栏问题
- 关于ie扩展的问题(在浏览网站的时候,QQ的工具可以在mouse停到图片上的时候显示出来并可以添加到qq表情里)
- mscomm控件奇怪问题,请高手进来指点.在线等(40分)
- 是控制access中的float类型的数据啊?
- 请问各位大哥有没有知道creation_zy大哥的通信方法,谢谢回复
- 用adoquery怎样将fastreport文件保存到数据库以及如何调用保存后的文件
- 有在新疆的做程序的进来聊聊呀!
- 请问调试自定义component的技巧
- 谁有让应用程序启动后显示在windows状态栏的控件?可以控制其启动、退出和写一些日志。请慷慨些!
- 有人有FICQ的资料吗?
- 请教高手人一个指引
- Format
ADOConnection.BeginTrans;
try
ADOConnection.Execute('update ...');
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;
adoquery1.sql.text:='select * from tablename';
adoquery1.open;
while not adoquery1.eof do
begin
adoquery2.sql.clear;
adoquery2.sql.text := 'update tablename set col1=1 where col2=''' + adoquery1.fieldbyname('col1').asstring + '''';
adoquery2.execute;
adoquery1.next;
end这样子没有办法保证所有都update成功或所有都失败。
try
//我用adoquery1绑定connection属性为adoconnection,使用adoquery操作,也能 回滚
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;
方法
try
socketConnection1.appserver.transactionStart;
XXXXXXXX
XXXXXXXX 这里是要写的内容
socketConnection1.appserver.transactionCommit;
except
on E:Exception do
begin
socketConnection1.appserver.transactionRollback;
end;
end;跟楼上一样