请教个概念性的问题:事务 请问一下,怎样才能用delphi编写事务?谁能给个简单的例子,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有一个ADOConnection和两个ADOQuery,这两个ADOQuery的Connection都是ADOConnetction,事务处理:try ADOConnection.BeginTrans; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into Table1 Values(1,2,3,4,5)'); ADOQuery1.ExecSQL; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into Table1 Values(1,2,3,4,5)'); ADOQuery1.ExecSQL; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('insert into Table1 Values(1,2,3,4,5)'); ADOQuery2.ExecSQL; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('insert into Table1 Values(1,2,3,4,5)'); ADOQuery2.ExecSQL; ADOConnection.CommitTrans;except ADOConnection.RollbackTrans; ShowMessage('提交过程出错,事务已回滚');end; AdoConnection.begintrans;tryAdoQuery1.sql.clearAdoQuery1.sql.add('insert into...');AdoQuery1.ExecSQL;AdoConnection.committrans;exceptAdoConnection.rollbacktrans;end; 如果我不是用ADO往数据库中写数据而是执行一些过程向文本文件中写数据的话那么我该怎么写事务呢?谢谢 楼上老大都对,不过在SQL SERVER中还有一个隐含事务。也就是EXEC事务 说笑吧?事务是在SQL Server 中实现的,就算是SQL Server实现的方式是这样的:你开始的时候,它是真的往数据库的表里面添加一个实实在在的记录的,当你要回滚事务的时候,它也是实实在在地执行一个删除的任务,所谓的回滚,其实只是系统帮你执行删除的任务而已.并不是恢复原来的状态.之所以是那样,是因为你可以设置一个自动递增的标识的字段,你就知道它是不是那样的,当你回滚过一个事务以后,再次插入一个数据的时候,那个自增量的字段的数字就是段开一个数字的,断开的那个数字就是系统帮你删除的记录! 事务是数据库的概念,delphi中支持事务。但最终还是依赖于数据库来实现数据操作的同步性、一致性,实际上相当于在数据库端开辟一个缓冲区,将本次事务的操作结果记录下来,当事务中的所有步骤全部成功完成时,将缓冲区中对数据库的更改真正作用于实际的数据。至于楼主说得对文本文件写东西要考虑别的办法了。可以先把所有要写入的东西放在一个临时文件中,全部成功在写入实际的文本文件,仅仅是建议,仅供参考。 控件属性Parameters的问题 我用OLE开发的程序要发布了!要注意些什么? tcxgrid如何给只读单元格设置不同显示颜色 请教请教,为什么小数位会“丢失”? 如何设置Excel横向打印? ****寻求delphi兼职**** 用delphi自己写了个播放器,遇上了问题,请大家帮忙 谁能把(全部)键盘的控制数字告诉我 登录窗体与闪动窗体同时出现,登录窗口在上,登录成功后显示闪动窗口,后进入主程序 请问李维Delphi5.xADO?MTS?COM+一书的源代码在那个网站有下载的? oleContainer操作Excel 本人要开发仓库管理系统,打印实现月报表等功能,请大家帮忙讨论一下.急
try
ADOConnection.BeginTrans;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Table1 Values(1,2,3,4,5)');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into Table1 Values(1,2,3,4,5)');
ADOQuery1.ExecSQL;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('insert into Table1 Values(1,2,3,4,5)');
ADOQuery2.ExecSQL;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('insert into Table1 Values(1,2,3,4,5)');
ADOQuery2.ExecSQL;
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
ShowMessage('提交过程出错,事务已回滚');
end;
try
AdoQuery1.sql.clear
AdoQuery1.sql.add('insert into...');
AdoQuery1.ExecSQL;
AdoConnection.committrans;
except
AdoConnection.rollbacktrans;
end;
可以先把所有要写入的东西放在一个临时文件中,全部成功在写入实际的文本文件,仅仅是建议,仅供参考。