2009-09-15 9 views
1

Traditionnellement, mon logiciel client force une configuration de la source ODBC en accédant à 'Outils d'administration' et en créant manuellement une nouvelle connexion ODBC.Créer des paramètres ODBC au moment de l'installation?

Est-il possible de configurer une nouvelle connexion ODBC lors d'une installation? Sur une note connexe, existe-t-il un moyen de capturer une connexion ODBC existante pour l'utiliser dans ce processus théorique?

Répondre

1

Je l'ai utilisé le programme d'installation de Nullsoft retour dans la journée et ils ont des exemples de scripts.

http://nsis.sourceforge.net/Create_an_ODBC_entry_for_a_MS_Access_database http://nsis.sourceforge.net/Check_whether_an_ODBC_entry_exists

Fondamentalement vous écrire les valeurs correctes au registre: HKEY_LOCAL_MACHINE "SOFTWARE \ ODBC \ ODBC.INI \ Sources de données ODBC"

Utilisez les outils de registre inclus dans votre logiciel d'emballage .

Lequel utilisez-vous? et quel type de DB?

+0

Son pour déployer une connexion ODBC à une base de données SQL pour une application héritée qui utilise ADO pour plusieurs opérations que nous n'avons pas encore tout à fait mis à jour. –

+0

Je créerais la connexion manuellement sur une boîte de test, puis j'exporterais l'entrée correspondante du registre de la machine de test. Enregistrez-le dans le cadre de votre déploiement. Utilisez ensuite les aides de votre installateur (ou la ligne de commande) pour importer cette arborescence pendant l'installation. –

1

Oui, il y a. L'objet ODBC entier est stocké dans le Registre. Vous avez juste à créer des paramètres de registre. Je suppose que si vous utilisez toujours ODBC, alors vous êtes coincé avec Microsoft Access. Voici quelques exemples de paramètres pour Access. Si votre fournisseur est différent, faites-le nous savoir et nous vous aiderons aussi.

Supposons que votre nom de connexion ODBC soit MyODBC pour ces exemples.

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources 
Key: "MyODBC" 
Value: "Microsoft Access Driver (*.mdb)" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "FIL" 
Value: "MS Access;" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "Driver" 
Value: "$SYSDIR\odbcjt32.dll" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "Description" 
Value: "Description you'd like your users to see in Control Panel" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "UID" 
Value: The Access UserName if any. This is optional. 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "DBQ" 
Value: The installation directory/YourDB.mdb 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "SafeTransactions" 
Value: "00000000" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC 
Key: "DriverID" 
Value: "00000019" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "Threads" 
Value: "00000003" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "ImplicitCommitSync" 
Value: "" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "UserCommitSync" 
Value: "Yes" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "PageTimeout" 
Value: "00000005" 

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet 
Key: "MaxBufferSize" 
Value: "00000800" 

Bien sûr, l'installateur que vous utilisez déterminera exactement comment ils sont créés.

+0

Ceci est également important car il définit apparemment les pilotes ODBC sur le système. –

0

Pour répondre à ma propre question ...

Chaque profil ODBC se trouve dans:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 

Le profil contient les éléments suivants:

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<ODBC PROFILE NAME>] 
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll" 
"Server"="<ODBC PROFILE DSN>" 
"LastUser"="<LAST USER TO ACCESS ODBC (probably for lock)>" 
Questions connexes