GetFieldValue nur einmal?
-
hallo liebes Forum,
in einer Schleife durchlaufe ich alle Felder eines CRecordset-Datensatzes
und hole mir den Wert:short f; for(f=0; f < rs.GetODBCFieldCount(); ++f) { rs.GetODBCFieldInfo(f, fieldinfo); rs.GetFieldValue(f, variantdata); rs.GetFieldValue(f, stringdata); switch(variantdata.m_dwType) { ... } }Ich verwende dabei beide Aufruf-varianten (CString/CDBVariant) des GetFieldValue nacheinander.
Bei 2. Aufruf läuft er in meinen catch-block ohne weitere Fehlerbeschreibung.
Warum ist es nicht möglich, die gleiche Spalte 2x auszulesen ???
Danke,
Smeagol
-
wir wohl ein andere fehler sein..
wieso liest du den wert nicht einfach 1x aus, und kopiert die rückgabe?
zeig mal mehr code
-
Kann es sein, dass Du in der Schleife
rs.MoveNext()vergessen hast?
Edit: Ich merke schon, Du meinst die Spalten.
Was sagt denn
catch(CDBException *e)?
-
ich werde das gefühl nicht los, dass wenn ich das Feld über das CDBVariant auslese, manche Werte nicht korrekt rüberkommen.
So wollte ich, wenn der Typ "variantdata.m_dwType" nicht korrekt zugeordnet werden kann, den Wert aus dem CString extrahieren und die Formatierung aus dem "CODBCFieldInfo . m_nSQLType" erraten.
bedauerlicherweise schlägt die zweite Abfrage der Daten auf die selbe Spalte fehl.
Sprich wirft eine CDBException mit dem Code 100 ohne errText.und ich versteh nicht so richtig warum

weiss jemand?
-
das sieht mir nach ErrorCode, nicht nach ErrorText aus.
Versuche mal:
e->m_strErrorauszugeben. Vielleicht siehst Du dann mehr.
-
Könnte es sein, dass die Spalte NULL ist?