SQL Statement
-
Hi @ all !!
Ich hab ne DB Anwendung (Interbase; ODBC) wo ich ganz normale SQL Statements verwende:
ssql = "Select ... from ... where ... = "; ssql += ..; ssql += "BLA BLA"; db.Open(CRecordset::snapshot, ssql); // db.MoveFirst(); while(!db.IsEOF()) { Format .... db.MoveNext(); }
Wenn ich die Tabelle mit
Select *
abrage läuft alles korrekt durch.
Wenn ich nun einzelne Felder abfrage Select feld1, feld2 .., kriege ich folgende Fehlermeldung "Invalid column index for result set"Was mach ich hier falsch ???
-
In deiner Klasse (DB vom Assi) wurde eine Variable angegeben wieviele Spalten dein Table hat.
m_nFields = ;
Da eione DB-Anfrage über den Assi in alle Membervariablen (Tablefield`s) schreiben will kommt diese Fehlermeldung da nicht alle abgefragt wurden.
[ Dieser Beitrag wurde am 03.12.2002 um 15:51 Uhr von Unix-Tom editiert. ]
-
Hi Unix-Tom
Die Variable hat der Assi nicht angelegt !!
Ich will aber nicht dass er alle Variblen füllt. Ich will nur ein bestimmtes Feld abfragen !!!
Wie kann ich denn das machen ?????
Thx
-
Schau dir mal in der FAQ meinen Code an. In diesem löscht du raus was du nicht abfragen möchtest.
m_nFields
nicht vergessen zu ändern.
-
m_nFields habe ich jetzt gefunden !!!
@ Unix-Tom: Dein Sample in der FAQ ist fast der gleiche wie meiner.
Trotzdem komme ich mit meinem Problem nicht weiter !!!
m_nFields kann ich nicht ändern, da ich die Felder noch später brauche !!!Was habe noch für Möglichkeiten ???
Thx
-
Alternative A)
Du fragst alles ab und störst dich nicht daran, dass du zu viel abfragst.Alternative
Du legst einen neuen CRecordset für jede Abfrage an und passt DoFieldExchange
gemäß deinen Membervariablen an.Ich würde A bevorzugen.
-
OK, ich habe meine RecordSet angepasst und einige Felder rausgeschmissen !!!
Nun kriege ich beim Ausführen die Meldung "conversion is not implemented" ???
Welche Konvertierung ist damit gemeint ???Thx
-
Hat niemand eine Idee ???
Sorry, aber es ist echt dringend für mich !!
Thx