1

私は、外部データベースに接続するための典型的な [Delphi] セットアップを持っています。つまり、Table、DataSetProvider、ClientDataSet、および DataSource にフックされた Connection コンポーネントです。次のようなコードを使用して、新しいレコードを正常に挿入できます。

CDS.Insert;
CDS['advisor_id']:=1;
CDS['some_field']:=edtSomeField.Text;
//etc.
CDS.Post;

ただし、DataSource が CDS に接続する DBLookupComboBox もあり、ListSource などはアドバイザー名をリストし、advisor_id フィールドの値に変換するように設定されています。表示すべきものを表示します。設定方法に間違いはありませんでした。

DBLookupComboBoxをコメント アウトしCDS['advisor_id']:=1;て有効にすると、フィールドの値が提供されると仮定すると、CDS.Insert 行の直後にエラー メッセージが表示されます。メッセージには、「フィールド advisor_id には値が必要です」と書かれています。(上記の 2 つの割り当て行を交換すると、「フィールド some_field には値が必要です」というエラー メッセージが表示されることに注意してください。)

このように、db 対応コンポーネントと非 db 対応コンポーネントを混在させることはできますか? (または、ユーザーがレコードを挿入または更新するときに、アドバイザ名を含む ComboBox をロードし、それらを advisor_id 値に変換する必要がありますか?)

4

1 に答える 1