在写数据库软件时。
希望使用 ADOQuery 的缓存技术来处理数据;可是在软件开发过程中,出现了一个莫名其妙的问题;
具体的设置等如下:
ADOQuery 连接 ADOConnection (等。。这些不多说了)
ADOQuery 的属性
ADOQuery + DataSource + DBGrideh + 一些Ehlib 的输入组件(如:DBEditEh 等)
分别创建四个按钮为:新建 编辑 保存 取消
新建按钮的 代码主要是 ADquery.append;
编辑按钮的 代码主要是 ADquery.Edit;
保存按钮的 代码主要是 ADquery.UpdateBatch();
取消按钮的 代码主要是 ADquery.CancelBatch();
-----------------------------
问题出现了,
当窗口打开后,
1.新建,DBGriEH 可以看到正常添加新行;
2.什么也不输入点取消;这时也正常(看到DBGridEh 的新行也取消了)
3.新焦点移动非最后一行数据;
4.那么问题来了,点新建,这时有90%的机会出现数据定位到最后一行,而非新建一行数据出来;
---------
偿试了N多方法,弄了几小时后,才找到的解决的方法,
就是有
ADquery.append;
的后面加一个
ADquery.Post;
即可。