DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 21
在线用户: 14
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 moom (小新啊) ▲▲▲△△ -
普通会员
2018/2/13 0:13:34
标题:
新手问Fdac的事务问题? 浏览:1418
加入我的收藏
楼主: 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 不应该是不写入吗?

请问我的问题是什么原因呢?
----------------------------------------------
谢谢各位大大
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2018/2/13 0:36:29
1楼: 最好正常点表述,少用多重否定,我看半天都没反应过来。
----------------------------------------------
18114532@qq.com
作者:
男 homejun (homejun) ★☆☆☆☆ -
盒子活跃会员
2018/2/13 6:50:22
2楼: 那就FDConnection1.Rollback;回滚一下就不写入了。
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
作者:
男 744840146 (744840146) ▲▲▲▲▲ -
普通会员
2018/2/13 8:20:04
3楼: 事务有一个AutoCommit,把这个修改成false
----------------------------------------------
-
作者:
男 fcwbad89 (fcwbad89) ★☆☆☆☆ -
盒子活跃会员
2018/2/20 8:56:22
4楼: 补充3楼的,重点在于,用一个控件,在于了解控件有那些关键属性,了解清楚再使用。。。。
----------------------------------------------
-
作者:
男 moom (小新啊) ▲▲▲△△ -
普通会员
2018/2/20 14:21:26
5楼: 谢谢各位,恭喜发财
----------------------------------------------
谢谢各位大大
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS