Unicode ODBC MFC Tutorial VC7.1 oder VC8.0
-
Guten Tag,
nachdem ich vergebens versucht habe unter Visual Studio 6.0 Unicode über MFC und Recordset über die ODBC-Schnittstelle in eine Datenbank zuschreiben und zulesen (Aufgrund der MFC-Bugs). Habe ich das ganze mal mit einer neueren Entwicklungsumgebung Visual Studio 2003 mit dem VC7.1-Compiler ausprobiert. Das Lesen aus der Datenbank ging ohne Probleme und ich habe die Unicode Strings in der Applikation gesehen, allerdings gab es da gleich Probleme beim schreiben. Die Recordsets wurden direkt schon beim Lesen auf der Datenbank read only gesetzt und das Laden der Cursorbibliothek schlug fehl und konnte nicht verwendet werden. Nach längerer Recherche kam heraus, dass es über ODBC und MFC (Recordsets) nicht funktioniert. Statt ODBC sollte man ADO verwenden. Mhh das kann doch nicht sein.
Gibt es den hier Niemanden der über ODBC und MFC Unicode in der Datenbank geschrieben bzw. ausgelesenen hat??? Das muss doch irgendwie möglich sein Microsoft ist doch nicht so blöd, und bietet son kack in der neuen Entwicklungsumgebeung an. Naja anscheinend doch. Mhhh
Also falls jemand das doch irgendwie mit den Recordsets geschaft haben sollte würde ich mich hier über ein kleines Beispielprogramm sehr freuen.
Egal in welcher Entwicklungsumgebung (ab (inklusive) Visual Studio 6.0)
Besten Dank
Gruß skontox
-
Wenn du unbedingt bei ODBC bleiben willst, und die MFC so viel Probs macht (was ich mir aber nicht vorstellen kann, hab saber nicht ausprobiert), dann probier doch mal http://dtemplatelib.sourceforge.net/ aus. Vielleicht hilft dir das weiter?
-
Wenn du ein wenig Geld ausgeben willst kannst du auch www.sqlapi.com dafür nutzen.
-
Verwende doch die ATL-Templates... ODBC ist sowieso out...
-
Herzlichen Dank für die Antworten, demnach hat es von Euch auch keiner geschaft über ODBC und den MFC Recordsets Unicode in die Datenbank zu schreiben.
Leider benutzt die Software an der ich hier entwickle ein großes Framework, das die ODBC-Klassen von MFC verwendet, deshalb wäre es nett gewesen wenn das über Odbc geklappt hätte, so wird das ein richtig großer Aufwand das Problem zu beheben
Trotzdem herzlichen Dank, vielleicht findet sich ja hier noch jemand der das mit Odbc und MFC hinbekommen hat. Dann bitte melden, das würde mich sehr freuen

Gruß skontox
-
Guten Tag,
nachdem ich nun eine Konferenzschaltung mit Microsoft hatte.
Gibt es definitiv eine Aussage.
Es funktioniert einfach nicht mit der ODBC-Implementierung im MFC und Unicode.
nicht unter VC6.0 oder höher.
Dafür gibt es andere Schnittstellen wie OLEDB, die man nutzen sollte.
Es gibt also keine Lösung dafür
Lesen und Darstellen aus der DB klappt, aber nicht schreiben.Gruß skontox
-
Lesen und Darstellen aus der DB klappt, aber nicht schreiben.
Das allerdings auch nur ab dem vc7.1 compiler (.net 2003) Vielleicht auch noch unter vc7.0, das weiß ich aber nicht genau, da ich das nicht getestet habe.Gruß skontox
-
Ich beschäftige mich derzeit auch mit Access-Datenbanken und bin derzeit auch bei ODBC hängengeblieben. Ich hab es zumindest geschafft Unicode-Zeichen in eine Zelle zu schreiben. Es gibt anscheinend Unterschiede in der Umsetzung der Zeichentabelle des Editors von MS Visual C++ und dem Zeichensatz, der zum Schreiben in die DB verwendet wird. Es werden nicht alle Zweichen sinnrichtig dargestellt. Ich habe mal versucht der String
MyDB.TestString=_T("Ãã¹○M╔ µ€");zu übertragen. Der Zellinhalt in der DB sah dann so aus:
Ãã¹?M+ µ€Somit ist es erst mal möglich auch via ODBC Unicode zu schreiben.
Was hast du denn für Klassen in deinem ODBC-Consumer für die Zeichenketten? Ich verwende CStringW, der ist unicodefähig.