请教诸位高手:为什么数据集滚动时,自动将记录变化保存,我希望当我执行table1.post时才保存的。郁闷!请支招,不胜感激! 我在DBGrid中某个地方修改了个值,我没点“保存”或什么,只是鼠标接着点DBGrid的另一条记录,我希望之前的修改是不被提交的,但是记录却变了,怎么能不这样,我试了好多方法都不行,我发现是在table1.beforeScroll之前就执行table1.post了,如果我在beforePost中写table1.Cancel,记录是没变了,但确报了个异常。 非常郁闷!请高手执教,多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DBGRID好像有这个自动保存的功能,关注 好像是不行的,ReadOnly好了,不允许修改 或者别用DBGrid,用StringGrid然后自己写更新的提交功能以及和数据库的链接 把ADODataSet的BATCHUPDATE 设置为真。这样调用post就不会提交到数据库。保存的地方调用UPDATEBATCH 用DataProvider和ClientDataset连,像多层的那种模式 呵呵,谢谢诸位大虾关怀,我试过了,因为在dbGrid上点别的记录后会触发post事件,我就在beforePost事件问用户是否要保存变化,如果不存则adoTable1.cancel;还一定要加上一句abort,否则在dbGrid上会看到虽然刚才那条记录不会变了,但却加了一条只包含刚才修改的字段内容其他字段全空着的这么一条记录,连beforeinsert都检测不到,不论最后是否已经提交到数据库了,视觉上总是很怪异,这点是我最郁闷的,(不信各位可以试一下,如果谁能处理的不发生这样的情况,一定要告诉我,)所以如果取消后,就不好意思,需要用户再点一次她刚才想点的那条记录了,但至少基本达到我的要求了。用不用updateBatch方式在用户操作时也有上面的怪异效果,只是它没有提交到数据库中。 在DataSoucre的AutoEdit设为false; delphi调用c动态库 delphi不能生成exe,请您指点 类似于outlook2003 的任务重复周期功能的设计,重复周期数据库字段如何设计? delphi中有数据管道之类的东东吗? 关于远程日期 时间 - 急等! hook,钩子问题求助??? DBGrid中字体颜色的动态赋值? 利用钩子如何屏蔽键盘呢? 关于msado15.dll 的错误? 我的硬盘0磁道坏了,请问有什么方法让它起死回生? 编译报错:Incompatible types:'regular procedure and method pointer' 窗体大小怎么会随分辩率改变而改变??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货