开了两个DELPHI
各有两个数据库连接
操作的是同一个数据库的同一张表
其中一个DELPHI开启了事务
代码如下:
ADOQuery1.Locate('BBBB', 1, []);
ADOConnection1.BeginTrans;
ADOQuery1.Edit;
ADOQuery1.FieldByName('AAAA').AsInteger := 1;
没有提交事务;另一个DELPHI没用事务直接修改表
ADOQuery1.Locate('BBBB', 1, []);
ADOQuery1.Edit;
ADOQuery1.FieldByName('AAAA').AsInteger := 0;理论上讲由于第一个DELPHI开启的事务应该是把表锁住了,
第2个DELPHI是修改不了的,但结果是表的内容被第2个DELPHI改
过来了,为什么会这样???
各有两个数据库连接
操作的是同一个数据库的同一张表
其中一个DELPHI开启了事务
代码如下:
ADOQuery1.Locate('BBBB', 1, []);
ADOConnection1.BeginTrans;
ADOQuery1.Edit;
ADOQuery1.FieldByName('AAAA').AsInteger := 1;
没有提交事务;另一个DELPHI没用事务直接修改表
ADOQuery1.Locate('BBBB', 1, []);
ADOQuery1.Edit;
ADOQuery1.FieldByName('AAAA').AsInteger := 0;理论上讲由于第一个DELPHI开启的事务应该是把表锁住了,
第2个DELPHI是修改不了的,但结果是表的内容被第2个DELPHI改
过来了,为什么会这样???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货