Connectionsting wo eingeben? Hilfe!
-
Jo weist du woran das liegt? Der Vorteil bei OpenEx der mir gefällt: wenn keine Verbindung zustande kommt, kann man den automatischen ODBC_Dialog unterdrücken. Bei Open kommt der ja leider immer. Aber was bringts wenn OpenEx dafür die Verbinfung nicht hinbekommt, wenn es eigentlich gehen müsste ... .
-
Woran es liegt weiß ich nicht. Aber wie man es relativ gut umgehen kann.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-116639.html
-
estartu_de schrieb:
Es geht auch ohne CDatabase - denn um das Objekt zu nutzen, musst du es auch dem Recordset geben.
CDeinRecordset recSet(dasDatabaseObjekt);
In deiner Recordsetklasse hast du die Funktion GetDefaultConnect. Da drin steht der Connectionstring.
ja genau da steht er dirnnen hatte ich auch so gedacht. Aber leider weiß ich da net genau wo. Habe alle mir logisch erscheinen Sachen schon ausprobiert ein Codeschnippel wäre da nicht schlecht.
CString artikel::GetDefaultConnect() { return _T("ODBC;DSN=datenbank"); }
Bisher sieht es so aus. Jetzt will ich das ja automatisieren. Aber irgendwie egal wo ich den String eingeben Es kommen immer fehler.
-
Jens Bond schrieb:
CString artikel::GetDefaultConnect() { return _T("ODBC;DSN=datenbank"); }
Bisher sieht es so aus. Jetzt will ich das ja automatisieren. Aber irgendwie egal wo ich den String eingeben Es kommen immer fehler.
Das ist die richtige Stelle. Zeig doch mal deine Versuche.
-
CString artikel::GetDefaultConnect() { return _T(""Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;" "); }
so habe ich dann das gemacht. Aber es funzt net!
-
Das dürfte gar nicht erst compilieren, weil du " statt \" in einem String verwendet hast.
Mach mal:CString artikel::GetDefaultConnect() { return _T("\"Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;\" "); }
-
da kommt dann ein Debug assertion fehler
File afxdb.inl
Line: 86komisch komisch!
-
schreib mal am anfang des Strings "ODBC;"
-
return _T("ODBC;""\"Driver={Microsoft Access Driver (*.mdb)};Dbq=datenbank.mdb;Uid=;Pwd=;\" ");
also so?
dann kommt die aufforderung eine datasource auszuwählen und dann wieder der fehler.
-
Werden die Anführungszeichen im Connection-String überhaupt benötigt? Wenn nicht, dürfte das hier richtiger sein:
return _T("Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=; ");
-
so habe ich es schon probiert
-
ajo ich sehen schon ihr könnt mir auch nicht wieterhelfen.
Aber irgendwer muss doch schonmal das gleiche Problem gehabt haben!
Edit: Wenn ich dann debugge kommt an der stelle. variable benötigt Stack-Rahmen
-
Jens Bond schrieb:
Edit: Wenn ich dann debugge kommt an der stelle. variable benötigt Stack-Rahmen
Du musst noch einmal F10 drücken, dann sollte die Variable angezeigt werden können...
-
kann es irgendwer sich mal angucken?
-
return _T("ODBC;Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=; ");
Da fehlt wahrscheinlich ein escape. etwa so:
return _T("ODBC;Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\mydatabase.mdb;Uid=Admin;Pwd=; ");
Kurt
-
tja natürlich lag es auch da dran nicht