繁体   English   中英

ORA-01036中的Delphi7主详细关系查询结果

[英]Delphi7 master detail relations query results in ORA-01036

我正在使用Devart的dbExpress驱动程序4.70 Delphi7。

我删除了两个TSQLTables(分别称为AB ),两个TDataSetProviders( dspAdspB ),两个TClientDataSets( cdsAcdsB ),两个TDataSources( dsAdsB )以及两个DBGrid( gridAgridB )。 一切都很好。 如果将cdsA.Active设置为true,则可以在gridA看到数据。 每个cdsB相同。

现在我要实现关系

A JOIN B ON a = b.

字段aB的字段b引用的真实A的前键,并且b也是B的主键。 我将内容设置如下(我使用图形工具):

cdsB.MasterSource := dsA;
cdsB.MasterFields := a;
cdsB.IndexFieldNames := b;

当我执行cdsB.Open ,出现以下错误:

ORA-01036:非法的变量名称/编号”。

表A中的字段a值始终为null (没有数据)。 TSQLMonitor报告以下查询: Execute: select * from A

...

Execute: select * from ENTI where (b is NULL)

:1 (Number,IN) = <NULL>

我错过了什么,如何解决?

使用Datasnap时,应该在源数据集而不是客户端数据集上设置M / D关系。 它将在主客户端数据集中创建一个“数据集字段”。 然后,您将此字段分配给子客户端数据集。 这种方法也更有效。

无论如何,它也应该正常工作,看起来您的SQL出了点问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM