我用adotable做数据集,用dbgrid显示。adotable的lock type设为ltBatchOptimistic。在新增记录的事件里我加了一些预设字段值的语句,如设置fields[0].value := 1之类的,但是记录并没有真正提交到数据库里去。现在我想在新增记录按下后,dbgrid便新增一行,当我点击上面的任意一条记录时,dbgrid新增的一行能自动删掉。如何实现?
如果用dbnavigator控制的话,就有这样的功能。新增一行如果没有输入数据而点击别的行时,最后一行会自动删掉。
如果用dbnavigator控制的话,就有这样的功能。新增一行如果没有输入数据而点击别的行时,最后一行会自动删掉。
YourTable.Insert;
....(Initialize code)
并记录下你的record number.
然后找Table的AfterScroll事件,如果记录是从新增记录scroll过来的,那么就Yourtable.Cancle之。否则post.
现在adotable的lock type方式为ltbatchoptimistic,按下新增按钮时表记录的个数不会增加的(除非updatebatch),那么我如何判断记录是从新增记录scroll过来的呢?
if Table.State in [dsInsert] then
begin
Table.Cancel;
end;
需要updatebatch才可以更新的 或者你的locktype 属性使用默认的设置 post的话就可以直接的提交了
To angle097113:locktype使用默认属性的话,就好办多了,我现在的lock type属性就是要设成ltbatchoptimistic。