post和updatebatch区别 delphi

Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库如果不是使用批量更新的方式的时候,Post的时候,确认的修改直接写入数据库。 我弄了一个例子是ado的。往数据库添加一条数据,可是用post也是会在数据库中看到我要添加的数据不是说放在缓存吗?怎么会出现在数据库? 所谓的批量更新是不是数据很多条?一般是多大呢?还是说每次更新的数量很多? 批量更细数据的话他也要一条记录一条记录的添加进去吧?那这样的话,一条一条的记录页可以用post啊 搞不懂post跟updatebatch都什么时候用


Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库。

当CursorType是ctKeySet或者ctStatic,并且LockType是ltBatchOptimistic的时候,数据DataSet是用批量更新的更新方式。这时,每条记录修改之后,用Post确认当前修改,但是确认后的数据却并没有立即写入数据库,而是保存于缓存之中。当调用UpdateBatch的时候,这些缓存中的修改才写入数据库。

如果不是使用批量更新的方式的时候,Post的时候,确认的修改直接写入数据库


确认你的adoquery的LockType是ltBatchOptimistic,那么提交数据更新的数据库是用UpdateBatch否者是post