¿Cómo puedo crear una conexión ODBC desde un archivo .bat en Windows?

9

Necesito un script por lotes para crear una conexión ODBC / DSN desde un archivo .bat en Windows. ¿Cómo puedo hacer esto?

Jhonathan
fuente
.bat solo te da acceso a lo que está en la línea de comando, así que no creo que sea posible. Sin embargo, debería ser posible con Visual Basic, aunque nunca lo he hecho.
Robert
@Robert Eso es posible. Ya hecho.
Jhonathan

Respuestas:

11

Por supuesto.

Cree manualmente una conexión ODBC en su PC utilizando el applet "Fuentes de datos (ODBC)" en las herramientas de administración.

Inicie regedit y vaya a HKLM \ Software \ ODBC y exporte todo el lote desde ODBC a un archivo .reg. Esta es una opción de clic derecho en la carpeta.

Abra el archivo exportado en el Bloc de notas ahora necesita eliminar todo lo que no se refiere a su conexión ODBC particular.

Deberías terminar con un archivo de registro similar a este

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]
"TEST"="SQL Server"

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\TEST]
"Driver"="C:\\Windows\\system32\\SQLSRV32.dll"
"Server"="SERVERNAME"
"LastUser"="USERNAME"
"Trusted_Connection"="Yes"

Puede ser ligeramente diferente según la configuración de conexión y similares. Necesitará las dos secciones, las fuentes de datos definen el tipo de conexión, en este caso, un servidor SQL, luego el bit que le dice cómo se llama, qué controlador usar y qué tipo de autenticación usar. todo esto se hará cuando configure la conexión, solo necesita el archivo .reg con él.

Luego puede importarlo en cualquier PC haciendo doble clic en el archivo reg o si tiene la facilidad de ejecutar un script para importarlo usando regedit. Puede llamar a esta importación desde un archivo por lotes:

regedit /s FileToImport.reg
Glenn Sullivan
fuente
44
Tenga cuidado: hay dos conjuntos de claves de registro para conexiones odbc en máquinas de 64 bits.
Joel Coel
Las entradas del registro también se pueden crear con reg.exe. Si de todos modos va a mover un archivo, sería mejor crear un DSN de archivo en lugar de un DSN del sistema.
Ansgar Wiechers
¡trabajos! Abrí regedit y exporté el dsn actual para hacer una copia para instalar en otras máquinas.
crh225
55
Tenga en cuenta que para los programas de 32 bits que se ejecutan en sistemas de 64 bits, la ruta es HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\....
Nux