ODBC Datenquelle automatisch hinzufügen lassen
-
Guten Morgen

Ich versuche im Moment beim Start eines Programms von mir zu checken ob schon eine bestimmte ODBC Datenquelle mit festgelegtem Namen eingerichtet ist. Sollte diese noch nicht eingerichtet sein, möchte ich, dass mein Programm das automatisch tut. Der Befehl SQLInstallDriverEx installiert leider wirklich nur den Treiber für eine ODBC Schnittstelle, ich kann damit aber keine direkte Datenquelle (Access Datenbank) angeben. Nun habe ich in der ODBC.ini und ODBCINST.ini Informationen zu den ODBC Schnittstellen gefunden, allerdings steht darin nicht die Adresse der Datenquelle. Diese steht aber in der Regisrty unter "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\Quellenname" mit einigen Einstellungen.
Muss ich die ini Einträge, sowie die Registry-Einträge aus meinem Programm heraus manuell generieren, oder gibt es andere Methoden, um eine ODBC-Datenquelle im Windows einzurichten? Ich nutze VS 2005 mit den MFC.
Liebe Grüße
Basti
-
Hallo vieleicht hilft Dir das weiter:
Ich hab das bisher folgendes gemacht:
In Windows im ODBC-Administrator zu Fuss eine ODBC-Verbindung hinzugefügt,
mit dem Assi "Eine MFC-ODBC-Consumerklasse hinzugefügt".
aus der Klasse den String in der fkt "GetDefaultConnect" genommen, zb._T("DSN=MeineDSN;DBQ=C:\\MeinOrdner\\MeineDB.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=password;SystemDB=MeineSystem.mdw;UID=username;");Diesen String dann zu fuss zerlegt und in der fkt "SQLConfigDataSource" eingefügt.
und bei jedem ProgStart wird diese dann aufgerufen.
::SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access-Treiber (*.mdb)", "DSN=MeineDSN\0" "DBQ=C:\\MeinOrdner\\MeineDB.mdb\0" "DriverId=25\0" "FIL=MS Access\0" "MaxBufferSize=2048\0" "PageTimeout=5\0" "PWD=password\0" "SystemDB=MeineSystem.mdw\0" "UID=username\0");Beim Prog. ende rufe ich die fkt folgend auf:
::SQLConfigDataSource(NULL, ODBC_REMOVE_DSN, "Microsoft Access-Treiber (*.mdb)", "DSN=MeineDSN");Das funzt wunderbar,
mfg Jochen
-
Danke, funktioniert 1a
