gpt4 book ai didi

delphi - 如何在firemonkey TStringGrid中完成编辑后立即将数据发布到数据库

转载 作者:行者123 更新时间:2023-12-02 04:36:42 27 4
gpt4 key购买 nike

在 Rad Studio 10.3 中,我使用 LiveBindins 向导并选择 FireDAC 将 StringGrid 连接到数据库。除了以下问题之外,一切都很好:

当用户编辑单元格并按 Enter 键时,值已正确编辑,但新值不会发布到数据库,直到用户导航到另一行。换句话说,如果用户更改单元格的值并保留在当前行,则新值不会发布到数据库。

有没有办法在编辑完成后立即发布新值?如果是,怎么办?

如果需要 sample here is the link我的问题的示例项目。

最佳答案

the new value is not posted to database!

原因之一是允许用户改变主意并取消更改。数据库中的更改通常会涉及激活的链式 react ,例如通过服务器端触发器对其他表进行修改/增删,以保持数据的一致性。

因此,您需要调用数据集的 Post 方法,以便将更改保存到数据库,最好是在为用户提供确认或取消更改的机会之后。 TBindNavigator 是一种常用的非侵入式方法,它包含 SaveCancel 按钮,一旦数据集中的任何字段发生更改,这些按钮就会亮起。所做的更改,因此它避免了让用户面对弹出对话框,询问是否应该进行更改或取消更改。

如果您想避免使用 TBindNavigator,您可以在 StringGrid 上设置一个事件处理程序,如下所示:

procedure TForm2.StringGrid1EditingDone(Sender: TObject; const ACol,
ARow: Integer);
begin
if DataSet.State in [dsEdit, dsInsert] then
DataSet.Post;
end;

关于delphi - 如何在firemonkey TStringGrid中完成编辑后立即将数据发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57644322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com