MySQL データベースに次のテーブルがあります。
DBGrid に従業員テーブルと job.jobName を表示し、ユーザーが編集できるようにしたい (おそらく DBNavigator を使用)。
そこで、SELECT ... JOIN クエリ、DataSource を使用して ADOQuery を作成し、DBGrid DataSource をそれにリンクしました。
すべてが機能しますが、jobIdフィールドの代わりに、JobNamesを表示するJobフィールドが必要で、コンボボックスを介して選択し、employee.JobIdにIDを設定できます。このようなもの:
ADOQuery の JobId フィールドの LookupKeyFields/LookupResultFields プロパティを使用して実現できると思っていましたが、実際にはうまくいきません。
ジョブ テーブルからすべてをロードし、JobId フィールド (ADOQuery 内) のプロパティを設定する ADOTable を追加しました: FieldKind = fkLookup、 KeyFields = JobId、 LookupDataSet = tblJob、 LookupKeyFields = IdJob、 LookupResultFields = JobName。
しかし、現在、Job 列は空であり、コンボボックスはありません。
また、DBGrid 列に PickList プロパティが見つかりましたが、これは TStrings であるため、表示された文字列のみを許可し、表示された文字列と値を分離することはできません。そして、文字列フィールド(LastName)に入力しようとしても何もしませんでした。