原则上, 你可以用Delphi的TDatabase控件中的Method:
StartTransaction, Commit, Rollback 来处理事务. 详细方法, 请叁看有关BDE的处理方
法, 我不想再重覆.
假如你是用DBGrid来处理数据, 不想逐次更新, 你更可以用 CacheUpdates := true;
然後使用 Applyupdates 或 Cancelupdates来批次存入更新或取消更新.
其实, Delphi的TDatabase并无给用户完全发挥Interbase的事务管理功效. 首先, Interbase
除了支援 TransIsolation := tiReadCommitted外,
也可以用更高级的 TransIsolation := tiRepeatableRead.
Interbase的事务是有别於其他传统的做法, 他的事务是用顺序的version number来分别不同
的更新事务, 所以他不需要用Lock Record方式也可以处理多用户同时更新事务. 详细情形
请叁看http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1040049938:7976&page=ibp_document
上面的文件.(只是全 E文的)
在Delphi上, 以IBO (http://www.ibobjects.com)来处理Interbase/Firebird最彻底, 除了
上述BDE的事务方式外, 他的TIB_Transaction 或TIBODatabase可以更精细来管理事务, 如
他可以细分事务如下:
· Close;
· Commit;
· Rollback;
· Refresh( CommitChanges: boolean );
· ChangeIsolation( NewIsolation: TIB_Isolation; CommitChanges: boolean );
· Pause/Resume;
· IB_Transaction.Close
等等. 平时我们只需呼叫 Autocommit := true; IBO便自行处理事务了, 远比BDE, IBX,
DbExpress更方便.