Programación General > Power Builder
Crear conexión ODBC desde PB
dcnseC:
Buenas tardes a todos, mi pregunta ahora es si es que se puede crear una conexión ODBC directamente desde Power Builder 9.0 ó 10.5., si es que se puede me gustaría que me ayuden con códigos.
He creado una aplicación, que algunos ya lo habran leido en mis mensajes anteriores que es el SisCot que actualmente está en su version 2012 - 1. El cual utiliza una conexion ODBC que debe ser creada manualmente al momento de instalarlo. Mi idea es que el programa lo creé al momento de la instalación sin ninguna intervensión del usuario.
Ya que el pequeño programa quiero compartirlo con otros usuarios de la red y que lo puedan usar, pero algunos de ellos desconocen de como crear una conexión ODBC y les hace imposible utilizar el programa.
El SisCot 2012 trabaja con una Base de Datos creada en Access 2003.
De antemano les agradezco por sus respuestas.
Juanra15:
Crea una funcion con 2 parametros string (nombre y ruta) y tirale este codigo, a mi me funciona sin problema, espero que te sirva, Saludos
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", nombre, RegString!,"Microsoft Access Driver (*.mdb)")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "Driver", RegString!,"C:\WINDOWS\system32\odbcjt32.dll")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "DBQ", RegString!,ruta)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "DriverId", ReguLong!,25)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "FIL", RegString!,"MS Access;")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "SafeTransactions", ReguLong!,0)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "UID", RegString!,"")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "ImplicitCommitSync", RegString!,"")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "MaxBufferSize", ReguLong!,2048)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "PageTimeout", ReguLong!,5)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "Threads", ReguLong!,3)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "UserCommitSync", RegString!,"Yes")
dcnseC:
Estoy revisando tus lineas de código y encuentro lo siguiente:
Que en la función que voy a crear el parámetro nombre es el nombre de mi conexión;
y el parámetro ruta no aparece por ningun lado, donde se usa, o para que me va a servir?
me gustaría que me aclares esa partesita.
Pero desde ya muchas gracias por tu respuesta, voy a probar y comento como me fue.
Juanra15:
Parametros: nombre = "DB_Mi_Programa" , ruta = "C:\Mi Programa\base de datos.mdb"
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", nombre, RegString!,"Microsoft Access Driver (*.mdb)")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "Driver", RegString!,"C:\WINDOWS\system32\odbcjt32.dll")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "DBQ", RegString!,ruta)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "DriverId", ReguLong!,25)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "FIL", RegString!,"MS Access;")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "SafeTransactions", ReguLong!,0)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre, "UID", RegString!,"")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "ImplicitCommitSync", RegString!,"")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "MaxBufferSize", ReguLong!,2048)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "PageTimeout", ReguLong!,5)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "Threads", ReguLong!,3)
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\"+nombre+"\Engines\Jet", "UserCommitSync", RegString!,"Yes")
El parametro ruta es justamente eso, la ruta donde se encuentra la base de datos de Access, Saludos.
dcnseC:
uy!!! perdon, creo q lo e estado revisando pero no me abia percatado de que estaba ahi...
Bueno ahora si está mas entendido... lo voy a probar y escribo para ver como me fue...
Muchas gracias por su paciencia...
Navegación
[#] Página Siguiente
Ir a la versión completa