Problem mit CRecordset -> DRINGEND
-
rs.GetFieldValue(m_TN_name,person.name);Auf diese Art und Weise lese ich eine Exceltabelle aus. person.name ist vom Typ CString. Ich benutze Visual Studio 2005, ist also ein wchar_t-String.
Mein großes Problem: der richtige Wert steht, aber die Länge des Strings ist falsch(immer das doppelte). Wenn ich jetzt z.B mit dem String arbeiten will geht das immer schief.
Woran liegt das?
Kann es sein, dass der ODBC-Treiber das nicht hergibt? Falls ja wie umgeh ich das? Hab mir aber mal über CDBVariant den Typ anzeigen lassen, der meinte wchar.Oder liegt das Problem wo ganz anders?
Wäre für schnelle Hilfe sehr dankbar.
MfG Pellaeon
-
Mach einfach nen CString draus. Wo ist dat prob. DU kannst die in deiner RecordSet klasse einfach sagen sie soll vom typ CString sien amche ich imma so und funzt ohne prob.
-
ja ich habs doch als CString, das ist es ja o_O
Ich habe echt keine Idee wie ich das beheben soll momentan
-
Hmmm.... ich muss Dir leider sagen: Das ist ein Bug...
Siehe: Bug Details: Damaged CString when reading it using CRecordset::GetFieldValue from UNICODE MFC version.
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=f59d1341-0897-4274-beb8-b0710f17dfffEs gibt leider nur einen etwas unschönen Workaround:
http://lab.msdn.microsoft.com/productfeedback/ViewWorkaround.aspx?FeedbackID=FDBK47349#1Hoffentlich ist dieser Bug mit SP1 behoben...
-
danke für die Info, Jochen