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.Active
trueに設定すると、データが表示されgridA
ます。ごとに同じcdsB
。
今、関係を実装したい
A JOIN B ON a = b.
フィールドは、のフィールドによって参照されるa
trueA
の外部キーであり、の主キーでもあります。次のように設定します(グラフィックツールを使用します):B
b
b
B
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>
何が欠けていましたか?どうすれば修正できますか?