Delphi7主要细节关系查询结果在ORA-01036中

时间:2011-11-24 20:38:20

标签: oracle delphi delphi-7 ora-01036

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

我删除了两个TSQLTables(称为AB),两个TDataSetProviders(dspAdspB),两个TClientDataSets(cdsA和{{ 1}}),两个TDataSources(cdsBdsA)和两个DBGrids(dsBgridA)。一切都很好。如果我将gridB设置为true,我可以在cdsA.Active中看到数据。每gridA个相同。

现在我想实现关系

cdsB

字段A JOIN B ON a = b. a的字段A引用的真正B的外键,bb'也是主键。我设置的内容如下(我使用图形工具):

B

当我cdsB.MasterSource := dsA; cdsB.MasterFields := a; cdsB.IndexFieldNames := b; 时,我收到了这个错误:

  

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

表A中的字段cdsB.Open值始终为a(没有数据)。 TSQLMonitor报告以下查询: null

Execute: select * from A

...

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

我错过了什么,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

无论如何它应该也可以工作,它看起来你的SQL有问题。