Delphi7、Devart の dbExpress ドライバー 4.70 を使用しています。
2 つの TSQLTables (それらを and と呼びますA) B、2 つの TDataSetProviders (dspAおよびdspB)、2 つの TClientDataSets (cdsAおよびcdsB)、2 つの TDataSources (dsAおよびdsB)、および 2 つの DBGrids (gridAおよびgridB) をドロップします。すべてがうまく設定されています。cdsA.Activetrueに設定すると、データが表示されgridAます。ごとに同じcdsB。
今、関係を実装したい
A JOIN B ON a = b.
フィールドは、のフィールドによって参照されるatrueAの外部キーであり、の主キーでもあります。次のように設定します(グラフィックツールを使用します):BbbB
cdsB.MasterSource := dsA;
cdsB.MasterFields := a;
cdsB.IndexFieldNames := b;
するとcdsB.Open、次のエラーが発生しました。
ORA-01036: 変数名/番号が無効です。
フィールドa値は常にnullテーブル A にあります (データはありません)。TSQLMonitor は次のクエリを報告します。
Execute: select * from A
...
Execute: select * from ENTI where (b is NULL)
:1 (Number,IN) = <NULL>
何が欠けていましたか?どうすれば修正できますか?