请教诸位高手:为什么数据集滚动时,自动将记录变化保存,我希望当我执行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; FindWindowEx找到的按钮句柄怎么转换为TButton? 哪位大哥能给个用getmessage拦截汉字的键盘钩子??急 谁能帮忙做个服务程序的框架 键盘反应慢怎么办? delphi5源代码转换成delphi6代码 怎样给数据感知控件的datafield动态赋值? 如何在其他空间上不让popupMenu 弹出来? 请教 TMail2000 组件 发送邮件 请教关于中文的问题 我的系统只能给'0'分怎么办,不能给'50'分??重新申请吗?? 编译报错:Incompatible types:'regular procedure and method pointer' 窗体大小怎么会随分辩率改变而改变??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货