ODBC Treiber installieren
-
Hallo,
ich habe eine kleine Anwendung die Daten in eine Access-Datenbank speichert.
Diese Datenbank schicke ich mit meiner Anwendung mit. Auf dem Kunden-PC ist kein ODBC-Treiber installiert (oder nicht der aktuelle). Ich habe ein wenig nachgeforscht und die Api-FunktionSQLConfigDataSource(...)
gefunden.
Laut MSDN:Bevor ::SQLConfigDataSource verwendet werden kann, muss die ODBCINST.H-Headerdatei eingebunden und die Importbibliothek ODBCINST.LIB verwendet werden. Außerdem muss die Datei ODBCCP32.DLL zur Laufzeit im Ausführungspfad gespeichert sein, bzw. bei 16 Bit die Datei ODBCINST.DLL).
Die Headerdatei ODBCINST.H habe ich eingebunden und die ODBCINST.DLL habe ich in das Ausführungsverzeichniss (installationsverzeichniss) reingelegt.
Ich weiss nicht wie man die ODBCINST.LIB einbindet, ich benutze VSC++.NET.
Ich bekomme auf dem Kunden PC folgende Fehlermeldung:ODBC Installer
"ODBC can´t load the resource \Programme\MeinProgramm\"Zu der Fehlermeldung fehlt die angabe des Laufwerks C:\ ist das OK daß das Laufwerk nicht ausgeschrieben wird?
Und noch eine weitere Frage:
Wo ruft man normalerweise die Funktion SQLConfigDataSource(...) auf. Wenn ich das im Init mache dann wird sie immer aufgerufen.?Bitte um Tips und Hilfe ich bin seit Paar Tagen dran und ich weiss nicht weiter.
-
Steht in der FAQ wie du das einsetzt.
-
Hallo Unix-Tom,
zu SQLConfigDataSource(...) gibt es zwei Beiträge, aber da steht nichts von ODBC-Treiber installieren nur wie man die Funktion verwendet nicht aber wo man sie verwendet (im welchen Programmteil). Meine Anwendung lässt sich auch Problemlos compalieren. Nur auf dem Kunden-PC macht sie wíe im Beitrag oben beschrieben Probleme. Deswegen war mein erster Ansatz mit der .lib dass ich da etwas falsch gemacht habe bzw. ich habe mit dr .lib nichts gemacht, wil ich nicht weiss wie man so eine Lib einbindet oder macht der VSC++.net das automatisch.
Danke Nochmal
-
Hallo,
hat mal keiner einen Tip wie ich den ODBC-Treiber aus der Anwendung heraus
auf dem Fremd-PC installiere
-
Hallo,
hat mal keiner einen Tip wie ich den ODBC-Treiber aus der Anwendung heraus
auf dem Fremd-PC installiere
-
Das würde mich auch interessieren.
Schade, dass es noch keine Antwort gibt.Ich lasse mir vom Assistenten folgendes generieren:
CString Ctest1Set::GetDefaultConnect() { return _T("DBQ=MeineDatenbank.mdb;Driver={Microsoft Access-Treiber (*.mdb)};DriverId=25; FIL=MS Access;FILEDSN=MeineDatenbank.mdb.dsn; MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"); }
d. h. die DB ist im gleichen Verzeichnis wie die Anwendung.
Auf einigen Rechnern lässt sie sich aber nicht starten. Ich hoffe, auf dem Zielrechner muss Access nicht installiert sein? Ist ein veralteter ODBC-Treiber schuld oder wird dieser sowieso erst mit Access mitinstalliert?
Wie kann ich die Anwendung auf andere Rechner portieren? (ODBC-Treiber mitinstallieren?)
-
[quote="bbatec"]
weiss nicht wie man die ODBCINST.LIB einbindet, ich benutze VSC++.NET.Und noch eine weitere Frage:
Wo ruft man normalerweise die Funktion SQLConfigDataSource(...) auf. Wenn ich das im Init mache dann wird sie immer aufgerufen.?
quote]Also wie de das einbindest hast du glaube ich noch nicht geklärt, wie ich das verstannden habe. Also, du musst(zumindest bei 6 müsste bei .Net nicht anders sein)einfach bei Projekt auf Einstallungen und dann oben links alle konfigurationen auswählen und dann bei Linker die obcinst.lib ganz vorne eintragen.
Wenn de das im Init machst, wird sie immer aufgerufen wenn du deine Anwendung startest, wenn de das erst starten willst wenn irgend ein Button gedrückt wird, dann musst de das in deine onButton funktion packen.
Ich weiß jetzt nicht was diese Funktion bewirkt, aber ich würde vom Prinzip her mit ner if schleife testen ob der richitge Treiber installert ist und wenn er nicht ist, deine Funktion aufrufen.
Hoffe ich konnte Helfen
Devil .