我有一个数据库表,我需要在其中插入记录。我正在使用可更新的 TClientDataset,一切正常。
现在,我需要添加一个虚拟字段;不是经过计算的。我可以在其中写入行状态的一个字段(只是我将在 ApplyUpdates 之前使用的一些信息),但这不是数据库表的一部分。
我看过这篇很有启发性的帖子,但是添加的字段是计算出来的,无法更新和保留信息。这对我来说不好。
我试图从数据库选择中添加一个“虚拟字段”并修复 ProviderFlags 以删除 pfUpdate。
cds.CommandText := 'SELECT 1 AS DUMMY , CUSTOMERS.* FROM CUSTOMERS';
cds.Open;
cds.FieldByName('DUMMY').ProviderFlags := [];
我在 Provider.pas 中看到,在构建插入 sql 之前,会检查 ProviderFlags。这确实应该有效,问题是 ProviderFlags 似乎没有从我上面的声明中更新。
请问,你知道如何动态添加一个字段,它是可写的,但被delphi数据库更新过程忽略了?
我正在使用德尔福 7。
谢谢你的帮助。