gpt4 book ai didi

delphi - Dbgrid - 自动发布到数据库

转载 作者:行者123 更新时间:2023-12-03 18:32:54 26 4
gpt4 key购买 nike

我有一个带有查询、数据集、可编辑 dbgrid 和 updatesql 组件的表单。当我需要保存在 dbgrid 中所做的更改时,我调用此过程:

procedure TEditCardDetailForm.SaveChanges;
begin
Database1.StartTransaction;
try
Query2.ApplyUpdates;
Database1.Commit;
except
Database1.Rollback;
raise;
end;
Query2.CommitUpdates;
end;

但是,当我按 Enter 键或在编辑 dbgrid 中的单元格后转到另一行时,我希望将更改自动应用于数据库——就像我使用 TTable 组件时所做的那样。有没有办法做到这一点?

最佳答案

如果我理解正确(如果不是,请纠正我)你有一个 CachedUpdates 设置为 true 的 TQuery,但希望它表现得好像它不会使用缓存但立即更新。如果是这种情况,您设置 TQuery 的方式与您想要的行为相矛盾。缓存的更新将在客户端“保留”,直到您决定使用 ApplyUpdates 手动将它们发布到数据库。

如果您可以将 CachedUpdates 设置为 false,则只需执行以下操作:

  • 通过其 UpdateObject 属性将 TUpdateSQL 链接到 TQuery。
  • 编写插入、更新和删除语句并将它们分配给 TUpdateSQL 的 InsertSQL、ModifySQL 和 DeleteSQL 属性。

  • 我猜你已经完成了这两件事,所以将 CachedUpdates 设置为 false 就可以了。

    您可以找到有关 Delphi 5 缓存更新的更多信息 here .

    高温高压

    关于delphi - Dbgrid - 自动发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12710967/

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