I have a huge SQLstring for selecting and inserting
Quote:
Originally posted by irona20
Well, I don't think that the SQL statment are so huge.
I had this problem once:
Code:
CString strAux = "SELECT DISTINCT \
GenInfInforme.sINFO_CODIGO, \
GenInfInformeDetalles.sIDET_VISTA, \
GenInfInformeDetalles.sIDET_CONSULTA, \
GenInfInformeDetalles.sIDET_USUARIO, \
GenInfArbolesCF.sGIAR_ARBOL, \
GenInfArbolesCF.nGIAR_COMPORT, \
GenInfArbolesCF.nGIAR_TIPOEJE, \
GenInfArbolesCF.nGIAR_PROFUN, \
GenInfArbolesCF.sGIAR_NODO, \
MasterTreesStructure.NodeCode, \
MasterTrees.TreeNumberOfLevels,\
MasterTreesStructure.NodeLevel, \
MasterTreesStructure.NodeTreeOrder \
FROM GenInfInforme INNER JOIN \
GenInfInformeDetalles ON \
(GenInfInformeDetalles.sINFO_CODIGO = GenInfInforme.sINFO_CODIGO) \
INNER JOIN Users ON (Users.UsuarioID = GenInfInforme.sINFO_USUARIO)\
INNER JOIN \
GenInfArbolesCF ON \
(GenInfInformeDetalles.sIDET_VISTA = GenInfArbolesCF.sGIAR_VISTA \
AND \
GenInfInformeDetalles.sIDET_CONSULTA = GenInfArbolesCF.sGIAR_CONSULTA \
AND \
GenInfInformeDetalles.sIDET_USUARIO = GenInfArbolesCF.sGIAR_USUARIO \
AND \
GenInfInformeDetalles.sINFO_CODIGO = GenInfArbolesCF.sGIAR_CODIGO) \
INNER JOIN \
MasterTrees ON \
(GenInfArbolesCF.sGIAR_ARBOL = MasterTrees.TreeMasterCode) \
INNER JOIN \
MasterTreesStructure ON \
(GenInfArbolesCF.sGIAR_ARBOL = MasterTreesStructure.TreeMasterCode) ";
strAux += "WHERE ((GenInfInforme.bINFO_PRIVADO = 0 AND Users.GrupoID = '%s') OR \
GenInfInforme.sINFO_USUARIO = '%s') AND \
((GenInfArbolesCF.nGIAR_TIPOEJE = 2) OR \
((GenInfArbolesCF.nGIAR_TIPOEJE < 2) AND \
((MasterTrees.TreeNumberOfLevels - 1) \
> MasterTreesStructure.NodeLevel))) AND \
((GenInfArbolesCF.nGIAR_COMPORT = 0) OR \
((GenInfArbolesCF.nGIAR_COMPORT > 0) AND \
((MasterTrees.TreeNumberOfLevels - MasterTreesStructure.NodeLevel \
- 1) >= GenInfArbolesCF.nGIAR_PROFUN))) \
ORDER BY GenInfInforme.sINFO_CODIGO, \
GenInfInformeDetalles.sIDET_VISTA, \
GenInfInformeDetalles.sIDET_CONSULTA, \
GenInfInformeDetalles.sIDET_USUARIO, \
GenInfArbolesCF.sGIAR_ARBOL, \
MasterTreesStructure.NodeLevel, \
MasterTreesStructure.NodeTreeOrder";
I have to split my string because I get an error in runtime. So, maybe it is the same error.
Yes.I have the same situation as you. Because there are more than 100 fields in one single table of my DB, it makes the select and insert SQL very very long.
Actually,I tried this way:
CString sqlcmd1("SELECT [CONTINUOUS_FURNACE_NAME],[FURNACE_TYPE],[FURNACE_HEATING_TYPE],[IMAGE_PATH],[CONTINUOUS_FURNACE_TYPE],[OVERALL_W],[OVERALL_H],[WORK_SPACE_W], [WORK_SPACE_H],[ENTRY_OPENNING_AREA],[END_OPENNING_AREA],[MUFFLE],[BELT WIDTH],[BELT_MOVING],[BELT_UNIT_WEIGHT],[FURNACE_ EFFICIENY],[BELT_RETURN],[SHELL_COOLING_WATER_RATE],[THROU_AIR_FLOW],");
CString sqlcmd2("[ZONE_NUMBER],[Z1_LENGTH], [Z1_TRANSITION], [Z1_ATMOSPHERE], [Z1_FAN_HP],[Z1_ATMOSPHERE_FLOW],[Z1_CONNECTED_INPUT],[Z1_THROU_METAL_AREA],[Z2_LENGTH], [Z2_TRANSITION], [Z2_ATMOSPHERE], [Z2_FAN_HP],[Z2_ATMOSPHERE_FLOW],[Z2_CONNECTED_INPUT],[Z2_THROU_METAL_AREA],[Z3_LENGTH], [Z3_TRANSITION],[Z3_ATMOSPHERE], [Z3_FAN_HP],[Z3_ATMOSPHERE_FLOW],[Z3_CONNECTED_INPUT],[Z3_THROU_METAL_AREA],[Z4_LENGTH], [Z4_TRANSITION], [Z4_ATMOSPHERE], [Z4_FAN_HP],[Z4_ATMOSPHERE_FLOW],[Z4_CONNECTED_INPUT],[Z4_THROU_METAL_AREA],[Z5_LENGTH], [Z5_TRANSITION],[Z5_ATMOSPHERE], [Z5_FAN_HP],[Z5_ATMOSPHERE_FLOW],[Z5_CONNECTED_INPUT],[Z5_THROU_METAL_AREA],[Z6_LENGTH], [Z6_TRANSITION],[Z6_ATMOSPHERE], [Z6_FAN_HP],[Z6_ATMOSPHERE_FLOW],[Z6_CONNECTED_INPUT],[Z6_THROU_METAL_AREA],[Z7_LENGTH], [Z7_TRANSITION],[Z7_ATMOSPHERE], [Z7_FAN_HP],[Z7_ATMOSPHERE_FLOW],[Z7_CONNECTED_INPUT],[Z7_THROU_METAL_AREA],[Z8_LENGTH], [Z8_TRANSITION],[Z8_ATMOSPHERE], [Z8_FAN_HP],[Z8_ATMOSPHERE_FLOW],[Z8_CONNECTED_INPUT],[Z8_THROU_METAL_AREA],[Z9_LENGTH],[Z9_TRANSITION],[Z9_ATMOSPHERE],[Z9_FAN_HP],[Z9_ATMOSPHERE_FLOW],[Z9_CONNECTED_INPUT],[Z9_THROU_METAL_AREA],[Z10_LENGTH],[Z10_TRANSITION],[Z10_ATMOSPHERE],[Z10_FAN_HP],[Z10_ATMOSPHERE_FLOW],[Z10_CONNECTED_INPUT],[Z10_THROU_METAL_AREA],");
CString sqlcmd3("[HFACE_TOP1_THICK],[HFACE_TOP1_MAT],[HFACE_TOP2_THICK],[HFACE_TOP2_MAT],[HFACE_TOP3_THICK],[HFACE_TOP3_MAT],[HFACE_TOP4_THICK],[HFACE_TOP4_MAT],[HFACE_TOP5_THICK],[HFACE_TOP5_MAT],[HFACE_side1_MAT],[HFACE_side1_THICK],[HFACE_side2_MAT],[HFACE_side2_THICK],[HFACE_side3_MAT],[HFACE_side3_THICK],[HFACE_side4_MAT],[HFACE_side4_THICK],[HFACE_side5_MAT],[HFACE_side5_THICK],[HFACE_Bottom1_MAT],[HFACE_Bottom1_THICK],[HFACE_Bottom2_MAT],[HFACE_Bottom2_THICK],[HFACE_Bottom3_MAT],[HFACE_Bottom3_THICK],[HFACE_Bottom4_MAT],[HFACE_Bottom4_THICK],[HFACE_Bottom5_MAT],[HFACE_Bottom5_THICK] FROM [CONTINUOUS_FURNACE_DB]");
sqlcmd += sqlcmd1 ;
sqlcmd += sqlcmd2;
sqlcmd += sqlcmd3;
I printed out the sqlcmd at rumtime, it's a correct SQL.
But when it came to execute the sqlcmd, it throws a rumtime error like:[Microsoft][ODBC Microsoft access driver] Too few parameters.Expected 73. What's this?
Anyway,I am so grateful that so many nice people posting here.
Thanks!
wang
here is my huge SQL string.Please help.
CString sqlcmd1("SELECT [CONTINUOUS_FURNACE_NAME],[FURNACE_TYPE],[FURNACE_
HEATING_TYPE],[IMAGE_PATH],[CONTINUOUS_FURNACE_TYP
E],[OVERALL_W],[OVERALL_H],[WORK_SPACE_W], [WORK_SPACE_H],[ENTRY_OPENNING_AREA],[END_OPENNING
_AREA],[MUFFLE],[BELT WIDTH],[BELT_MOVING],[BELT_UNIT_WEIGHT],[FURNACE_ EFFICIENY],[BELT_RETURN],[SHELL_COOLING_WATER_RATE
],[THROU_AIR_FLOW],");
CString sqlcmd2("[ZONE_NUMBER],[Z1_LENGTH], [Z1_TRANSITION], [Z1_ATMOSPHERE], [Z1_FAN_HP],[Z1_ATMOSPHERE_FLOW],[Z1_CONNECTED_INP
UT],[Z1_THROU_METAL_AREA],[Z2_LENGTH], [Z2_TRANSITION], [Z2_ATMOSPHERE], [Z2_FAN_HP],[Z2_ATMOSPHERE_FLOW],[Z2_CONNECTED_INP
UT],[Z2_THROU_METAL_AREA],[Z3_LENGTH], [Z3_TRANSITION],[Z3_ATMOSPHERE], [Z3_FAN_HP],[Z3_ATMOSPHERE_FLOW],[Z3_CONNECTED_INP
UT],[Z3_THROU_METAL_AREA],[Z4_LENGTH], [Z4_TRANSITION], [Z4_ATMOSPHERE], [Z4_FAN_HP],[Z4_ATMOSPHERE_FLOW],[Z4_CONNECTED_INP
UT],[Z4_THROU_METAL_AREA],[Z5_LENGTH], [Z5_TRANSITION],[Z5_ATMOSPHERE], [Z5_FAN_HP],[Z5_ATMOSPHERE_FLOW],[Z5_CONNECTED_INP
UT],[Z5_THROU_METAL_AREA],[Z6_LENGTH], [Z6_TRANSITION],[Z6_ATMOSPHERE], [Z6_FAN_HP],[Z6_ATMOSPHERE_FLOW],[Z6_CONNECTED_INP
UT],[Z6_THROU_METAL_AREA],[Z7_LENGTH], [Z7_TRANSITION],[Z7_ATMOSPHERE], [Z7_FAN_HP],[Z7_ATMOSPHERE_FLOW],[Z7_CONNECTED_INP
UT],[Z7_THROU_METAL_AREA],[Z8_LENGTH], [Z8_TRANSITION],[Z8_ATMOSPHERE], [Z8_FAN_HP],[Z8_ATMOSPHERE_FLOW],[Z8_CONNECTED_INP
UT],[Z8_THROU_METAL_AREA],[Z9_LENGTH],[Z9_TRANSITI
ON],[Z9_ATMOSPHERE],[Z9_FAN_HP],[Z9_ATMOSPHERE_FLO
W],[Z9_CONNECTED_INPUT],[Z9_THROU_METAL_AREA],[Z10
_LENGTH],[Z10_TRANSITION],[Z10_ATMOSPHERE],[Z10_FA
N_HP],[Z10_ATMOSPHERE_FLOW],[Z10_CONNECTED_INPUT],
[Z10_THROU_METAL_AREA],");
CString sqlcmd3(" [HFACE_TOP1_THICK],[HFACE_TOP1_MAT],[HFACE_TOP2_TH
ICK],[HFACE_TOP2_MAT],[HFACE_TOP3_THICK],[HFACE_TO
P3_MAT],[HFACE_TOP4_THICK],[HFACE_TOP4_MAT],[HFACE
_TOP5_THICK],[HFACE_TOP5_MAT],[HFACE_side1_MAT],[H
FACE_side1_THICK],[HFACE_side2_MAT],[HFACE_side2_T
HICK],[HFACE_side3_MAT],[HFACE_side3_THICK],[HFACE
_side4_MAT],[HFACE_side4_THICK],[HFACE_side5_MAT],
[HFACE_side5_THICK],[HFACE_Bottom1_MAT],[HFACE_Bot
tom1_THICK],[HFACE_Bottom2_MAT],[HFACE_Bottom2_THI
CK],[HFACE_Bottom3_MAT],[HFACE_Bottom3_THICK],[HFA
CE_Bottom4_MAT],[HFACE_Bottom4_THICK],[HFACE_Botto
m5_MAT],[HFACE_Bottom5_THICK] FROM [CONTINUOUS_FURNACE_DB]");
sqlcmd += sqlcmd1 ;
sqlcmd += sqlcmd2;
sqlcmd += sqlcmd3;
I MessageBox the sqlcmd at rumtime, it's correct.
But when it came to execute the sqlcmd, it throws a rumtime error like:[Microsoft][ODBC Microsoft access driver] Too few parameters.Expected 73.
What's this?
Anyway,I am so grateful that so many nice people here.
Thanks!;)