注:Table_Customer的CachedUpdates属性为True,采用了事务处理方式提交代码如下:
with DM.Table_Customer do
begin
FieldByName('username').AsString:=UserName; //UserName为变量,在main中已申明
FieldByName('regdate').AsDateTime:=Now;
DM.Database.StartTransaction; //开始事务
try
UpdateRecord;
except
DM.Database.Rollback; //回滚事务
MessageDlg('操作失败!请与系统管理员联系!',mtError,[mbOK],0);
exit;
end;
DM.Database.Commit; //提交事务
CommitUpdates; //清空该表在客户端的缓冲
MessageDlg('操作成功!',mtInformation,[mbOK],0);
end;问题:事务处理中的提交并没有提交到数据库中,是哪个地方写错了?感觉不关事务处理的事,问题好象出在事务处理之前
with DM.Table_Customer do
begin
FieldByName('username').AsString:=UserName; //UserName为变量,在main中已申明
FieldByName('regdate').AsDateTime:=Now;
DM.Database.StartTransaction; //开始事务
try
UpdateRecord;
except
DM.Database.Rollback; //回滚事务
MessageDlg('操作失败!请与系统管理员联系!',mtError,[mbOK],0);
exit;
end;
DM.Database.Commit; //提交事务
CommitUpdates; //清空该表在客户端的缓冲
MessageDlg('操作成功!',mtInformation,[mbOK],0);
end;问题:事务处理中的提交并没有提交到数据库中,是哪个地方写错了?感觉不关事务处理的事,问题好象出在事务处理之前
解决方案 »
- 高手帮忙!用delphi截图怎么实现?
- 急:delphi中如何把真彩色的tiff文件转变成非彩色的tiff文件??
- access中ole字段中word文档的读取
- 大家看一下这个问题
- 请问一个程序最大允许使用多少条线程?
- 在DBGRID中,用‘下’键移到到最后一条记录时的问题
- 如何使用TValueListEditor的OnValidate事件?
- 在Delphi中怎样使用winpcap,请高手赐教!高分相谢。
- 请问:哪里有——reportbuilder——下载啊?
- 行行好!大爷大娘给点专家分吧 ......
- ACCESS数据库问题,怎样判断数据库已被另外程序打开。
- 关于netusergetinfo
with DM.Table_Customer do
begin
Edit;
FieldByName('username').AsString:=UserName; //UserName为变量,在main中已申明
FieldByName('regdate').AsDateTime:=Now;
Post;
if not DM.Database.InTransaction then
DM.Database.StartTransaction; //开始事务
try
ApplyUpdates;
DM.Database.Commit; //提交事务
except
DM.Database.Rollback; //回滚事务
MessageDlg('操作失败!请与系统管理员联系!',mtError,[mbOK],0);
exit;
end;
CommitUpdates; //清空该表在客户端的缓冲
MessageDlg('操作成功!',mtInformation,[mbOK],0);
end;
//试试我的方法,把这段语句Copy过去直接可用。
谢谢各位,特别感谢hxshun(Shun) ,纠正了我事务处理的隐式错误