类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
使用ADOQuery做主从时,
当主表是dbgrid控件来关联,只要你上下移到就会保存.这样就没有给用户取消操作的机会了.
还有一点,不知你有没有注意.当你新增一条主表的记录,而没有post.(还在缓冲区)接着去新增明细,当增加第二笔明细时,第一笔在dbgrid里就没看到了.这也不是用户所希望看到的.
最后一点,当是主-从-从时就ado更加麻烦.
看了很多帖子,但是按照他们的做法几乎没有成功。都出现以上的一些错误。有人说ADODataSet要好的多,但是我经验有限,不知道如何是好。刚就这个问题考虑了一个礼拜了。
谁那有比较好的例子。能不能给小弟发份,如果方便的话不防贴个源码。小弟重谢。
不方便的话:QQ:317599797 EMAIL:qdseashore@163.com
分数不够的话,我可以另开帖子加分。
网友回答:
你是不是用的DBEDIT?DBGRID一般只显示数据,而编缉最好不用GRID
同意楼上。
用dbexpress啊很方便的啊
ADOQuery的locktype设置为ltBatchOptimistic缓存更新模式
上下移到就不会保存,除非以
命令updatebatch提交
cancelbatch取消
用批更新模式.
直接做触发器看看
帮你UP一下。
从表和主表不要关连,在主表滚动事件后写代码,
有事务机制,保存时主从表分别保存,一不会有你的情况
问题1解决办法:
把ADOQuery的locktype属性设置为ltBatchOptimistic,也即缓存更新模式,上下移到就不会保存,除非以命令updatebatch提交cancelbatch(相当于cancel)取消。
问题2解决办法:
如果明细是用DBGrid显示,这个时候把ADOQuery的locktype属性设置为默认的ltOptimistic,当DBGrid中的记录移动时就会自动保存。
问题3解决办法与2差不多。不过后面两种解决方法不太理想,用户没有取消的机会
呵呵,只知道这么多,更好的办法大侠们知道,小的学习中,帮你UP