|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
moom (小新啊) |
▲▲▲△△ |
-
|
普通会员 |
|
2018/2/13 0:13:34 |
标题: |
|
加入我的收藏 |
楼主: |
D1022+vcl+fdac+sqlite, 以下可能问的问题较菜,勿踩... ... FConn.StartTransaction;
xieSQL;//一个多线程的过程 //多线程代码,每个线程里面都有执行写入 //FQRY.ExeSQL('insert into table value(...)');
FConn.Commit; //提交
小白提问: 1:我觉得如果强制关闭exe,应该会不能写入的...结果是写入了数据库; 2:我发现就算屏蔽了 //FConn.Commit; 这句, 结果 也是写入了数据库; 3:不用多线程,好像还是 事务无效, 还是写入了...
我看了 万一 的博客 事务是这样写的.... begin FDConnection1.StartTransaction; //开始一个事务 try {可能会出错的代码} FDConnection1.Commit; //提交 except FDConnection1.Rollback; //回滚 end; end;
现在我单独这样写: FConn.StartTransaction; FConn.ExeSQL('insert into table value(...)'); 没有 .Commit 也是写入生效的..
我的问题是:不 Commit 不应该是不写入吗?
请问我的问题是什么原因呢?
----------------------------------------------
谢谢各位大大 |
作者: |
|
2018/2/13 0:36:29 |
1楼: |
最好正常点表述,少用多重否定,我看半天都没反应过来。
----------------------------------------------
18114532@qq.com
|
作者: |
|
2018/2/13 6:50:22 |
2楼: |
那就FDConnection1.Rollback;回滚一下就不写入了。
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
|
作者: |
|
2018/2/13 8:20:04 |
3楼: |
事务有一个AutoCommit,把这个修改成false
----------------------------------------------
-
|
作者: |
|
2018/2/20 8:56:22 |
4楼: |
补充3楼的,重点在于,用一个控件,在于了解控件有那些关键属性,了解清楚再使用。。。。
----------------------------------------------
-
|
作者: |
moom (小新啊) |
▲▲▲△△ |
-
|
普通会员 |
|
2018/2/20 14:21:26 |
5楼: |
谢谢各位,恭喜发财
----------------------------------------------
谢谢各位大大
|
|