[英]Delphi7 master detail relations query results in ORA-01036
我正在使用Devart的dbExpress驅動程序4.70 Delphi7。
我刪除了兩個TSQLTables(分別稱為A
和B
),兩個TDataSetProviders( dspA
和dspB
),兩個TClientDataSets( cdsA
和cdsB
),兩個TDataSources( dsA
和dsB
)以及兩個DBGrid( gridA
和gridB
)。 一切都很好。 如果將cdsA.Active
設置為true,則可以在gridA
看到數據。 每個cdsB
相同。
現在我要實現關系
A JOIN B ON a = b.
字段a
是B
的字段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.