If I use a query using = comparisons in the WHERE clause for INNER JOINs, the query shown at the end of this message raises an Assertion failure (see call stack below).
If I use the same query using INNER JOIN syntax it works.
I can execute the query without problems with SQL*Plus
Assertion failure occurs in the following line in Ora.pas (line 8506):
Code: Select all
Assert(Result assertion fails
I found out that the problem lies in the const MaxTables: since my query has more than 50 tables, the assertion fails. If I increas MaxTables to e.g. 200 then it works fine.
My question is: is it save to increase MaxTables or is there a reason why it is set to 50? (I can't see any problems if I increase the array).
BTW: wouldn't it be better to replace the Assert() with a new SetLength() which increases the array dynamically?
call stack:
Ora.GetTablesInfo:8506
Ora.TOraDataSet.PSGetTableName:6738
OraSmart.TCustomSmartQuery.PSGetTableName:2166
DBAccess.TCustomDADataSet.SetActive:3060
Ora.TOraDataSet.SetActive:6834
DB.TDataSet.Open:9197
query (was autom. generated):
[code] SELECT Count(*)
FROM Ext_Data_H_V,
Ext_Desc_H_V,
Ext_Data_B_V,
Ext_Desc_B_V,
Ext_Desc_F_V,
XCD_VAI1 Xcd_vai1,
XCD_VAI1MGG2 Xcd_vai1mgg2,
XCD_MGG2MGA3 Xcd_mgg2mga3,
XCD_MGG2XCZ3 Xcd_mgg2xcz3,
XCD_MGG2XAB3 Xcd_mgg2xab3,
XCD_MGG2XCP3 Xcd_mgg2xcp3,
XCD_MGG2COU3 Xcd_mgg2cou3,
XCD_MGG2TXN3 Xcd_mgg2txn3,
XCD_MGG2TQU3 Xcd_mgg2tqu3,
XCD_MGG2XAA3 Xcd_mgg2xaa3,
XCD_MGG2XVB3 Xcd_mgg2xvb3,
XCD_MGG2ZAA3 Xcd_mgg2zaa3,
XCD_MGG2XCC3 Xcd_mgg2xcc3,
XCD Xcd,
FAD_VAI1 Fad_vai1,
FAD_VAI1FAS2 Fad_vai1fas2,
FAD_VAI1FMG2 Fad_vai1fmg2,
FAD_VAI1FMA2 Fad_vai1fma2,
FAD_VAI1GEI2 Fad_vai1gei2,
IAD_GEI1 Iad_gei1,
IAD_GEI1IAC2 Iad_gei1iac2,
IAD_GEI1GEL2 Iad_gei1gel2,
IAD_GEI1IBB2 Iad_gei1ibb2,
XCD_MGG2GEI3 Xcd_mgg2gei3,
XCD_GEI3GEK4 Xcd_gei3gek4,
XCD_GEI3XVE4 Xcd_gei3xve4,
FHD_VAI1 Fhd_vai1,
FHD_VAI1FHB2 Fhd_vai1fhb2,
XRD_VAI1MGG2 Xrd_vai1mgg2,
XRD_MGG2XAB3 Xrd_mgg2xab3,
ZAD_GEI1MGG2 Zad_gei1mgg2,
ZAD_MGG2TXM3 Zad_mgg2txm3,
ZAD_MGG2ZAB3 Zad_mgg2zab3,
ZKD_ZKA3ZKK4 Zkd_zka3zkk4,
ZKD_ZKA3ZKT4 Zkd_zka3zkt4,
ZKD_MGG2ZAA3 Zkd_mgg2zaa3,
ZKD_VAI1MGG2 Zkd_vai1mgg2,
ZKD_MGG2ZKA3 Zkd_mgg2zka3,
ZAD_MGG2ZAE3 Zad_mgg2zae3,
INSTR_NAMES Instr_names,
INSTR_NAMES Instr_names_1,
XRD_VAI1 Xrd_vai1,
XRD_MGG2XCO3 Xrd_mgg2xco3,
XCD_MGG2TOY3 Xcd_mgg2toy3,
XUD_XUI1 Xud_xui1,
XUD_XUI1VAI2 Xud_xui1vai2,
XUD_VAI2VAK3 Xud_vai2vak3,
XUD_XUI1XCU2 Xud_xui1xcu2,
ZAD_MGG2TXN3 Zad_mgg2txn3,
ZAD_MGG2TXY3 Zad_mgg2txy3,
ZAD_ZAB3ZAO4 Zad_zab3zao4,
XUD_VAI2XCV3 Xud_vai2xcv3,
XND_XNI3XZS4 Xnd_xni3xzs4,
XND_XZS4XZT5 Xnd_xzs4xzt5,
XND_MGG2XNI3 Xnd_mgg2xni3,
XND_XNI3XNA4 Xnd_xni3xna4
WHERE (Xcd_vai1.Vai1 = Xcd_vai1mgg2.Vai1
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2mga3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2xcz3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2xab3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2xcp3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2cou3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2txn3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2tqu3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2xaa3.MGG2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2xvb3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2zaa3.Mgg2
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2xcc3.Mgg2
AND Xcd.DOCKEY = Xcd_vai1.DocKey
AND Xcd_vai1.K981_7842 = Fad_vai1.K981_7842
AND Fad_vai1.Vai1 = Fad_vai1fas2.Vai1
AND Fad_vai1.Vai1 = Fad_vai1fmg2.Vai1
AND Fad_vai1.Vai1 = Fad_vai1fma2.Vai1
AND Fad_vai1.Vai1 = Fad_vai1gei2.Vai1
AND Fad_vai1gei2.K985_3801 = Iad_gei1.K985_3801
AND Iad_gei1.GEI1 = Iad_gei1iac2.GEI1
AND Iad_gei1iac2.DocKey = Iad_gei1gel2.DocKey
AND Iad_gei1iac2.K982_9981 = Iad_gei1gel2.K982_9981
AND Iad_gei1.GEI1 = Iad_gei1ibb2.GEI1
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2gei3.Mgg2
AND Xcd_mgg2gei3.Gei3 = Xcd_gei3gek4.Gei3
AND Xcd_mgg2gei3.Gei3 = Xcd_gei3xve4.Gei3
AND Xcd_mgg2xab3.K981_7842 = Fhd_vai1.K981_7842
AND Fhd_vai1.Vai1 = Fhd_vai1fhb2.Vai1
AND Xrd_vai1mgg2.Mgg2 = Xrd_mgg2xab3.Mgg2
AND Fad_vai1.K981_7842 = Ext_Data_H_V.EXTDATA_KEY
AND Fad_vai1.K981_7842 = Ext_Desc_H_V.EXTDESC_KEY
AND Fad_vai1.K981_7842 = Ext_Data_B_V.EXTDATA_KEY
AND Fad_vai1.K981_7842 = Ext_Desc_B_V.EXTDESC_KEY
AND Fad_vai1.K981_7842 = Ext_Desc_F_V.EXTDESC_KEY
AND Zad_gei1mgg2.Mgg2 = Zad_mgg2txm3.Mgg2
AND Zkd_mgg2zka3.ZKA3 = Zkd_zka3zkk4.ZKA3
AND Zkd_mgg2zka3.ZKA3 = Zkd_zka3zkt4.ZKA3
AND Zkd_vai1mgg2.Mgg2 = Zkd_mgg2zka3.Mgg2
AND Xcd_mgg2zaa3.F7820_1 = Zkd_mgg2zaa3.F7820_1
AND Xcd_mgg2zaa3.F7820_1 = Zad_mgg2zab3.F7820
AND Zad_mgg2zab3.Mgg2 = Zad_gei1mgg2.Mgg2
AND Zad_gei1mgg2.Mgg2 = Zad_mgg2zae3.Mgg2
AND Fad_vai1.K981_7842 = Instr_names."INSTRUMENT SYMBOL"
AND Xcd_mgg2xab3.K981_7842 = Instr_names_1."INSTRUMENT SYMBOL"
AND Zkd_mgg2zaa3.Mgg2 = Zkd_vai1mgg2.Mgg2
AND Xrd_vai1mgg2.Mgg2 = Xrd_mgg2xco3.Mgg2
AND Xcd_mgg2xab3.K981_7842 = Xrd_vai1.K981_7842
AND Xrd_vai1.Vai1 = Xrd_vai1mgg2.Vai1
AND Xcd_vai1mgg2.Mgg2 = Xcd_mgg2toy3.Mgg2
AND Xrd_mgg2xco3.F7820 = Xud_xui1.F7820
AND Xud_xui1.XUI1 = Xud_xui1vai2.XUI1
AND Xud_xui1vai2.VAI2 = Xud_vai2vak3.VAI2
AND Xud_xui1.XUI1 = Xud_xui1xcu2.XUI1
AND Zad_gei1mgg2.Mgg2 = Zad_mgg2txn3.MGG2
AND Zad_gei1mgg2.Mgg2 = Zad_mgg2txy3.MGG2
AND Zad_mgg2zab3.Zab3 = Zad_zab3zao4.ZAB3
AND Xud_xui1vai2.VAI2 = Xud_vai2xcv3.VAI2
AND Xcd_vai1mgg2.F7820 = Xnd_xni3xzs4.F7820
AND Xnd_xni3xzs4.XZS4 = Xnd_xzs4xzt5.XZS4
AND Xnd_xni3xzs4.XNI3 = Xnd_mgg2xni3.XNI3
AND Xnd_mgg2xni3.XNI3 = Xnd_xni3xna4.XNI3 )
AND (((Xcd_vai1mgg2.F7891 = 238)
AND (Fad_vai1fmg2.F7844 = 'TKT')))