我正在使用Delphi7,Devart的dbExpress驱动程序4.70。Delphi7 master详细信息关系查询结果ORA-01036
我滴2个TSQLTables(称他们为A
和B
),两个TDataSetProviders(dspA
和dspB
),两个TClientDataSets(cdsA
和cdsB
),两个TDataSources(dsA
和dsB
)和两个DBGrids(gridA
和gridB
)。一切都很好。如果我将cdsA.Active
设置为true,则可以看到gridA
中的数据。每cdsB
相同。
现在我想要实现的关系
A JOIN B ON a = b.
领域a
是S场b
和b
是B
的主键太真实A
'由B
称为小号foreing关键'。我设置的东西如下(我用的图形工具):
cdsB.MasterSource := dsA;
cdsB.MasterFields := a;
cdsB.IndexFieldNames := b;
当我做cdsB.Open
,我得到这个错误:
ORA-01036: illegal variable name/number".
领域a
值始终null
在表A(有没有数据)。 TSQLMonitor报告以下疑问: Execute: select * from A
...
Execute: select * from ENTI where (b is NULL)
:1 (Number,IN) = <NULL>
我错过了什么,以及如何这个问题能解决?
编辑您的问题以包含您正在执行的完整SQL语句。 –
在打开B之前,cdsA已打开? –
由于您使用的是设计器,因此双击Object Inspector中的MasterFields属性应启动['Field Link Designer]“(http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/) HTML/devcommon/fieldlinkdesigner_xml.html)。另请参阅:[使表格成为另一个数据集的细节](http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/5datasetmakingthetableadetailofanotherdataset_xml.html) –