Delphi ADO:保存DBEdit更改

时间:2015-02-10 10:23:10

标签: excel delphi ado delphi-xe5

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

但如何保存呢?我在FormClose上尝试过adotable.Post,但它会抛出错误,即#34;数据集不处于编辑或插入模式"。

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

1 个答案:

答案 0 :(得分:2)

当用户导航到另一条记录时,会自动调用

Post

您需要致电Post的唯一时间是当前所选记录在您关闭表单时有未决更改。

但即便如此,您也不必明确地致电Post:您可以使用辅助功能CheckBrowseMode。如果数据集处于编辑模式,CheckBrowseMode将检查是否有任何修改。如果没有,它将取消编辑,否则,它会发布这些更改。如果数据集已经处于编辑模式,CheckBrowseMode不会引发任何异常,只有在数据集关闭的情况下(在您的情况下这不可能)。