델파이 7, Devart의 dbExpress 드라이버 4.70을 사용하고 있습니다.델파이 7 마스터 세부 관계 쿼리 결과 ORA-01036
나는 두 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
이의 필드 b
및 b
너무 B
의 기본 키 진정한 A
'B
에 의해 참조의 foreing 키'입니다 구현하려는. 내가 cdsB.Open
를 할 때, 나는이 오류가있어
cdsB.MasterSource := dsA;
cdsB.MasterFields := a;
cdsB.IndexFieldNames := b;
:
ORA-01036: illegal variable name/number".
필드 a
값은 테이블 A에 항상 null
있다가 (이 I은 다음 (I 그래픽 도구를 사용)와 같은 물건을 설정 데이터 없음). 이 Execute: select * from A
...
Execute: select * from ENTI where (b is NULL)
:1 (Number,IN) = <NULL>
, 어떻게이 고정 될 수 TSQLMonitor는 다음과 같은 쿼리를보고?
실행중인 전체 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) –