Delphi ADO:保存DBEdit的更改

我使用ADO打开Excel表(尽pipe它可能与任何其他数据库相同:adoconnection,adotable,datasource)并将其显示在ReadOnly DBGrid中。 我有DBEdit编辑当前选定的行中的一些值。

但是如何保存呢? 我试图在FormClose adotable.Post,但它会抛出错误,“数据集不在编辑或插入模式”。

我需要在DBEdit OnEnter和Post OnExit中调用adotable.Edit吗?

当用户导航到另一个logging时, Post被自动调用。

您需要打电话的唯一时间是当您select的logging在您closures表单时有未决的更改。

但即使如此,您不必明确调用Post :您可以使用帮助函数CheckBrowseMode 。 如果数据集处于编辑模式, CheckBrowseMode检查是否有任何修改。 如果不是,则取消编辑,否则它会发布这些更改。 如果数据集已经不处于编辑模式,则CheckBrowseMode不会引发任何exception,只有在数据集closures的情况下(在您的情况下这是不可能的)。