我有一个infoPower Grid绑定到TQuery组件,后面跟着sql
SELECT membership_number, message_id, msgText,target, date_time_creation,
date_time_display
FROM MessageMembership
WHERE membership_number = :membershipnumber
ORDER BY date_time_display desc
qalso我已将它绑定到dbnavigator以及与InfoPOwer Grid绑定的DataSource。现在插入和删除和更新按钮是启用但插入按钮不要让我键入新值也更新按钮dnt让我键入更新的值。但删除工作正如预期的那样。我可能会遇到什么问题或步骤?
执行TQuery的代码是:
MessageMembershipSelectQuery.ParamByName('membershipnumber').AsString :=
custQuery.FieldByName('cust_code').AsString;
MessageMembershipSelectQuery.Open;
请帮帮我。
答案 0 :(得分:0)
TQuery
是 BDE 数据集。除非RequestLive
属性设置为True
,并且TUpdateSQL
属性绑定了UpdateObject
组件,否则不允许您编辑其内容。这两个属性协同工作以启用BDE的批处理模式,该模式名为缓存更新。
但是,我强烈建议您不要投资BDE,甚至不要学习如何在Delphi中编程。更好的是开始研究TClientDataset
的方式。它是一个功能更强大的数据集,可以让您更好地控制应用程序的所有部分,从选择到更新数据。
关于TClientDataset
的好处是,您将把应用程序的SQL依赖性与主域逻辑隔离开来,主域逻辑将在TClientDataset
周围写入。该逻辑将依赖于数据,而不依赖于SQL。
考虑一下:现在你有一个适用于MySQL的应用程序。然后,突然间,您必须将其移植到与Oracle一起工作。如果您将SQL依赖关系与主代码隔离开来,那么这种重构将更加快速和安全。
请记住: BDE已经死了。