读取数据问题
Procedure TfrmEPPALB20.FormCreate(Sender: TObject);
Begin
cds_EPPALHED := CDS_Create(CMS);
cds_Tmp := CDS_Create(CMS);
End;
Procedure TfrmEPPALB20.FormDestroy(Sender: TObject);
Begin
CDS_Free([cds_EPPALHED,cds_Tmp]);
End;
sSQL :=
'0SELECT ' +
' DISTINCT C021.NCMP,' +
' PHED.FORWARDER,' +
' PHED.HOSAIRBIL,' +
' C021.PGI_STATUS,' +
' PCON.CONTNO, ' +
' PHED.PACKLST, ' +
' PHED.BILLAND, ' +
' PHED.MASAIRBIL,' +
' PHED.BROKER, ' +
' PHED.ETADATE, ' +
' PHED.ETDDATE, ' +
' PHED.FLIGHTNO,' +
' PHED.FLIGHTDATE,' +
' PHED.FLIPORT, ' +
' PHED.FLIGHTNO2, ' +
' PHED.FLIGHTDATE2,' +
' PHED.FLIPORT2, ' +
' PADD.UPPOD, ' +
' PADD.POD, ' +
' PHED.APPNO, ' +
' PHED.VESLNAME, ' +
' PHED.CUSSRELDAT, ' +
' PHED.VOYAGENO, ' +
' PHED.STOAIRPDAT,' +
' IHED.SPTOCUSCO,' +
' IHED.SPINSTCO, ' +
' IHED.INVSPTOCO, ' +
' C021.HCUNO ' +
' FROM ' +
' EPPALHED PHED, EPPALCON PCON, EPPALADD PADD, EPINVHED IHED, EPPALINV PINV, CMPPS021 C021' +
' WHERE ' +
' PHED.PACKLST = C021.EPS_PAKNO' +
' AND PHED.PACKLST = PCON.PACKLST ' +
' AND PHED.PACKLST = PADD.PACKLST(+) ' +
' AND PHED.PACKLST = PINV.PACKLST ' +
' AND C021.NCMP = PINV.COMPNO ' +
' AND C021.NCMP = IHED.COMPID ' +
' AND PINV.INVNO = IHED.INVOICENO ' +
' AND TO_CHAR(C021.PINO) = PINV.INVNO ' +
' AND PHED.HOSAIRBIL = ' + QuotedStr(edHawbQue.Text);
End;
If CDS_Open(cds_EPPALHED, sSQL) Then
Begin
DsEPPALHED.DataSet := cds_EPPALHED;
DbEPPALHED.DataSource := DsEPPALHED;
End
Else
Begin
ShowMessage('Cannot find data!');
End;
请问大哥大姐们
我的代码 调试 sSQL 查询出来是有数据的。可是,老是走到 If CDS_Open(cds_EPPALHED, sSQL) Then
就跳出了,走else, 请大哥大姐们帮忙。。。
[最优解释]
sSQL :=
'0SELECT ' +
' DISTINCT C021.NCMP,' +
这仁兄呀,这第二代码就有问题呀,
建议还是在MSSQL数据库中“测试”一下吧
[其他解释]
sSQL :=
'0SELECT ' +
' DISTINCT C021.NCMP,' +....
改成SELECT。sql语句对不对,调试时候在查询分析器执行看看,
[其他解释]
其实就是SQL语句有问题的