私は私のソフトウェアで、次のDBX構造を持っている:私のTClientDataSetのからフィールドのプロパティがfalseに設定されているプロパティを持つフィールドから情報を取得する方法?
TSQLDataSet -> TDataSetProvider -> TClientDataSet
一つは、データベース(火の鳥)にトリガーおよび発電機に基づいて、このフィールドの自動インクリメントので、falseに設定必要な性質を持っています。
私はTClientDataSetのからこのフィールドを読み込むしようとすると、しかし、要求されていないこの分野でのTSQLDataSetとTClientDataSetの両方を設定した後、私は本当に奇妙な結果を取得しています。この条件でこのフィールドの値を取得するようにTClientDataSetを強制するには、何か特別な処理をする必要があるかもしれないと思います。
私はここで何が欠けていますか?
ありがとうございます。
EDIT
必要なプロパティのヘルプファイルには、このことについて何かを言うが、私はかなりそれは私が何をしたいのか理解できませんでした。
説明
は、フィールドの空白以外の値が を必要とするかどうかを指定します。
フィールド を空白にすることができれば、フィールドに値を必要とする場合や、使用必須見つけるために。
フィールドが項目エディタを使用して作成されている場合は、このプロパティは、基になるテーブルに基づいて を設定されています。 (例えば、パスワードまたは一部 数)の値を持っていますが、基本となるテーブルが フィールドを必要としない、プロパティを強制するOnValidateイベントハンドラを記述しなければならないためにしなければならないフィールドに対して真 するために必要なセットのアプリケーション。
Requiredプロパティが基になる データベーステーブルのプロパティを反映している場合、null値を適用してポストしようとすると、例外 が発生します。 、基になるテーブルにフィールドを必要としないときにtrueに必要なプロパティを設定するアプリケーションは、同じ結果を達成するために、OnValidateイベントハンドラ でnull値の EDatabaseError例外を発生させなければなりません。
EDIT 2
言及し忘れ:TDataSetProviderとTClientDataSetの間、DataSnapの層(TClientDataSetの接続がDataSnapのドライバで構成されている)があります。
EDIT 3
私はこのDataSnapのセットアップと小さなテストケースを作成し、それが完全に働きました。このプロジェクトは残念ですが、厄介な選択肢があり、私を噛んでいるか、DataSnapのバグに遭遇しました。
ClientDataSetからフィールドをどのように読み取ろうとしていますか?フィールドが必須であるかどうかは、フィールドから読み取るときには何も変わりません。データが挿入/編集操作でテーブル/データセットに書き込まれるときにのみ影響します。 –
cds.FieldByName( 'FIELD')。AsString; //問題はRequired:= falseフィールドでのみ発生します。 – ivarec
奇妙な結果は何ですか?インクリメント文字列フィールドがありますか? –