FoxPress – Septiembre 2004

 

Instala desde Fox el Driver ODBC de MySQL

 

 

Por la Redacción de FoxPress



 

El Driver ODBC de MySQL lo tienes disponible con su intalar para Windows en http://dev.mysql.com/downloads/connector/odbc/3.51.html

 

      Ejecutándo ese instalador, tus aplicaciones en Fox ya podrán acceder a esta Base de Datos.

 

      ¿Qué necesidad tenemos de construirnos o instalar el Driver por otro medio? Casi siempre, el problema puede venir del deseo de crear un solo paquete de instalación junto con tus programas (no tenerle que decir al cliente que tiene que realizar dos intalaciones).

 

      Para eso lo primero es mirar qué ficheros instala, dónde los deja y que claves introduce en el registry el instalador ‘normal’ para poder después realizar tu la misma función.

 

      Los ficheros son:

 

      MyODBC3.dll   

      MyODBC3.lib

 

      Que se instalan en el caso de un Windows 2000 en:

 

      C:\Winnt\system32\

 

      Las claves del registry que introduce son:

 

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\MySQL ODBC 3.51 Driver]

          "UsageCount"=dword:00000001

          "Driver"="C:\\WINNT\\system32\\myodbc3.dll"

          "Setup"="C:\\WINNT\\system32\\myodbc3.dll"

 

y

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs]

"C:\\WINNT\\system32\\myodbc3.lib"=dword:00000001

"C:\\WINNT\\system32\\myodbc3.dll"=dword:00000001

 

Con esto ya tienes todo. Estas claves las puedes incorporar a tu instalador preferido y ya lo tienes.

 

Deberás preocuparte de que tu instalador te las ponga. La forma más cómoda es exportar la clave y añadírsela al instalador. Unicamente te tienes que preocupar de que quizás no se instale en máquinas con el directorio de Windows llamado WINNT y deberás hacer que tu instalador de controle mediante una variable ese directorio.

 

      El siguiente paso es configurarlo y para eso puedes usar el siguiente código:

 

#DEFINE ODBC_ADD_DSN 1

#DEFINE ODBC_CONFIG_DSN 2

#DEFINE ODBC_REMOVE_DSN 3

#DEFINE ODBC_ADD_SYS_DSN 4

#DEFINE ODBC_CONFIG_SYS_DSN 5

#DEFINE ODBC_REMOVE_SYS_DSN 6

#DEFINE ODBC_REMOVE_DEFAULT_DSN 7

 

DECLARE INTEGER SQLConfigDataSource in odbccp32.DLL ;

         INTEGER hwndParent, INTEGER fRequest, ;

         STRING @lpszDriver, STRING @lpszAttributes

 

lcAttributes = "DSN=test" + CHR(0) + ;

       "Server=(local)" + CHR(0) + ;

       "database=PruebaFox1" + CHR(0) + ;

       "Protocol=2" + CHR(0) + ;

       "Server=192.168.1.1" + CHR(0) + ;

       "UID=LOLO" + CHR(0) + ;

       "Role=" + CHR(0) + ;

       "Vendor=" + CHR(0) + ;

       "CharacterSet=" + CHR(0) + ;

       "Database=" + CHR(0) + ;

       "Description=" + CHR(0) + ;

       "ReadOnly=0" + CHR(0) + ;

       "PWD=mio"

 

lnReturn = SQLConfigDataSource( 0, ODBC_ADD_SYS_DSN,;

             " MySQL ODBC 3.51 Driver" + CHR(0),;

             lcAttributes )

 

IF lnReturn>0

   WAIT WINDOW "Dado de Alta"

ELSE

   WAIT WINDOW "Falló la Alta"

ENDIF

 

      Si quieres introducir datos concretos deberás modificar/adaptar a tus necesidades la cadena lcAtributes

Si abres el configurador del driver, quedaría de la forma que se muestra en la página anterior. Como puedes ver y es una de las cosas que más me gustan de este driver es que puedes poner una IP remota con lo que podrías tener tu base de datos en un sitio y las aplicaciones cliente en otro.

 

 

 

 

 

FoxPress – Septiembre de 2004