2

レコードを挿入する必要があるデータベーステーブルがあります。私は更新可能なTClientDatasetを使用しており、すべてが正常に機能します。

次に、ダミーフィールドを追加する必要があります。計算されたものではありません。行の状態(ApplyUpdatesの前に使用する情報の一部)を記述できる1つのフィールドですが、これはデータベーステーブルの一部ではありません。

この輝かしい投稿を見ましたが、追加されたフィールドは計算されており、情報を更新および保持することはできません。それは私には大丈夫ではありません。

データベースから「ダミーフィールド」を追加して、ProviderFlagsを選択して修正し、pfUpdateを削除しようとしました。

cds.CommandText := 'SELECT 1 AS DUMMY , CUSTOMERS.* FROM CUSTOMERS';
cds.Open;
cds.FieldByName('DUMMY').ProviderFlags := [];

Provider.pasで、挿入SQLを作成する前に、ProviderFlagsがチェックされていることを確認しました。これは確かに機能するはずです。問題は、ProviderFlagsが上記の私のステートメントから更新されていないように見えることです。

書き込み可能であるが、delphiデータベースの更新プロセスによって無視されるフィールドをその場で追加する方法を知っていますか?

私はdelphi7を使用しています。

助けてくれてありがとう。

4

1 に答える 1

6

フィールドをInternalCalcフィールドにし、そのProviderFlags[]に設定します。これにより、フィールドがアプリケーションに書き込み可能になりますが、基になるデータベースを更新するときにフィールドがスキップされます。

于 2012-04-25T10:13:11.653 に答える