... das ist höchstens einen Teil des Problems (wenn es denn so sei). Wenn eine Applikation, welche auch immer einen String 'select * from blablabla where ort = N\ffrnberg' an den ODBC Treiber übergibt, dann hat dieser das so an die Datenbank zu senden und wenn es denn keinen Satz mit diesem Ort gibt, dann hat selbige einen SQLCODE von 100 zurückzuschicken.

D*B
Zitat Zitat von Fuerchau Beitrag anzeigen
Sieht mir ganz nach einem Fehler in der ODBC-Schnittstelle aus.
Für die ODBC-Routinen gibt es immer ein A-Version und eine W-Version.

Welche verwendet wird, hängt von einer C++-Compiler-Option ab, ob man Singlebyte oder Multibyte (UNICODE) verwendet.

Bei der Verwendung von UNICODE scheint es bei dir zu einem Umsetzungsproblem von Multibyte zu Single- oder Widecharacter zu kommen, was ggf. implizit durch den Compiler verursacht wird.

Dies macht nicht der ODBC-Treiber selber !

Die Umsetzungsroutine von Multibyte nach Singlebyte scheint nicht mit der richtigen Lokale zu arbeiten, so dass hier eben Schrott rauskommt und aus 'Nürnberg' eben 'N\ffrnberg' wird.

Versuche mal deine SQL's nicht mit TCHAR (was automatisch 1/2-Byte je nach Compiler-Option ist) sondern mit char[nn] aufzubauen.