MySQL e Visual Foxpro

download MySQL e Visual Foxpro

of 7

Transcript of MySQL e Visual Foxpro

  • 8/8/2019 MySQL e Visual Foxpro

    1/7

    )R[3UHVV$EULO

    0\64/\9)3KWWSZZZISUHVVFRP3RUOD5HGDFFLyQGH)R[3UHVV

    0\64/ es un gestor de Bases de Datos multi-thread, multiusuario quegestiona bases de datos relacionales poniendo las tablas en ficherosdiferenciados (en vez de en un solo fichero) sometida a las licencias del Open

    Source Software.

    MySQL funciona sobre plataformas Windows/Linux/SCO/SUN/IBMAIX/HP-UX. En la sede de www.MySql.comestn disponibles esas versiones los fuentes correspondientes. La ltima versin estable es la 3.23

    MySQL es muy conocido en el mundo Linux y es una de las Bases deDatos ms usadas. Las crticas que recibe suelen venir de las carencias que eproducto tiene entre las que se citan:

    1.- Inexistencia de Transacciones2.- Imposibilidad de hacer subconsultas (Subquerys)3.- Inexistencia de Procedimientos almacenados4.- Carencia de Tiggers en las Claves externas5.- Sin soporte para integridad referencial.

    Esto hace que sea uno de los Gestores de Bases de Datos ms rpidos as con Bases de Datos de menos de 500.000 registros es practicamenteimbatible. La web tiene una comparativa que es impactante:http://www.mysql.com/information/benchmarks.htm en la que se compara surendimiento con las ms conocidas Bases de Datos.

    Sus autores defienden el producto diciendo que para realizartransacciones ya tienen los bloqueos (exclusivamente a nivel de tabla) y que ltransacciones son difciles de implementar y que poca gente las usa.

    Las anteriores limitaciones hacen que el producto no sea apto paraentornos crticos o lugares con masivas entradas de datos. S por el contrariopara entornos no crticos y de mera lectura como por ejemplo un catalogo We

  • 8/8/2019 MySQL e Visual Foxpro

    2/7

    En las pruebas que hemos hecho se ha observado que las Basesde Datos se pueden borrar desde Windows (algo parecido a lo que sucede colos DBF) y es algo diferente de otras bases de datos como SQL Server u Oracque no se pueden borrar desde el sistema operativo y as tienen una mayorseguridad.

    En contra de lo que se piensa, MySQL slo es gratis si se usaprivadamente y como servidor Web (aunque sea comercial). Su uso comerciapor otras aplicaciones no servidoras Web (que necesiten MySQL parafuncionar) est sometido a las condiciones de la licencia.

    En el entorno Open Source hay otras Bases de Datos comoPostGresSQL que s soporta transacciones y tecnicamente est mejor queMySQL aunque por el contrario tiene un cdigo menos depurado. PostGreSQtiene fallos de gestin de memoria mientras que a MySQL es muy difcil hacerfallar. Por el contrario, PostGreSQL es Gratis y MySQL no siempre.

    Adems, mientras PostGres est disponible para todas lasplataformas compatibles con UNIX. Para correr sobre Windows se deben usarlas librerias de transporte de Cygnus Unix/NT. L ultima versin disponible es PostgreSQL es la 7.0.3. A diferencia de MySQL que se puede bajardirectamente la versin binaria para windows. PostGreSQL no tiene disponibleuna versin binaria para windows y deben realizarse todas las operaciones quen la documentacin se indican para que funcione en esos sistemas operativocosa harto engorrosa.

    ,QVWDODFLyQGH0\64/HQXQ(QWRUQR:LQGRZV

    A la hora de instalarlo hay que diferenciar si estamos en Win 9x o enentornos NT/W2k pues las instalaciones son diferentes.

    En nuestro caso lo probamos en un Win95 (primera versin). En esteentorno hubo que hacer lo siguiente para ponerla en marcha:

    1.- Instalar el soporte de Microsoft Socket 2 (como se sabe Win 95(primera versin) y la versin OEM de la Release 2 de Win 95 no venan con esocket 2 y es necesario intalarlo). En los ficheros de este mes est el instaladoSi lo instalas sobre Win98 o NT/w2k no es necesario que instales esto.

    2.- Instalar MySQL 3.23. El instalador es el mismo para todas lasversiones Win./NT/2000. Es mejor instalarlo en C:\ pues si se escoje otra unidhay que hacer algunos cambios. En los ficheros del mes est la versin binaride MySQL

  • 8/8/2019 MySQL e Visual Foxpro

    3/7

    3.- Instalar el Driver ODBC para MySQL. Tambin est entre los ficheros

    del mes. El instalador tiene un aire de 16 bits pero ya da totalmente soporte a32 bits. Al instalarlo en una mquina Win 95 limpia no qued bien la instalaciy hubo que repetirla una vez instalado VFP 6.0 que ya incorpor eladministrador ODBC32. Una vez instalado El Administrador se volvi a instalay en este caso ya qued correctamente instalado.

    Un comentario aadido a la instalacin es que todos los ficherosnecesarios se instalan en el directorio que se le indique y ninguno enWindows/System. Esto hace que:

    1.- Reinstalar Windows sin formateo no afecta a la Base de Datos

    2.- Los ficheros copiados son, tal cual, trasladables a otrasmquinas sin complejas inscripciones en el Registry o cosas similares.

    3XHVWDHQPDUFKDUna vez instalado debemos ponerlo en marcha. Para ponerlo en marcha

    basta con ejecutar desde una ventana de rdenes DOS la instruccin:

    C:\mySQL\bin\MySQLd

    Si ests trabajando con Win NT la instruccin sera:

    C:\mySQL\bin\MySQLd-nt

    Para desconectarlo habra que poner:

    C:\bin\mysqladmin -u root shutdown

    Esto sorprende un poco pues una vez puesto en marcha no seobserva ningn icono o advertencia de que est en marcha: quizs es unadeformacin del mundo Windows...

    Para comprobar que est en marcha podemos escribir:

    C:\ bin\mysqlshow

    Que nos dira qu bases de datos tenemos en este momento en elServidor

  • 8/8/2019 MySQL e Visual Foxpro

    4/7

    0DQLSXODUOD%DVHGH'DWRVGHVGHHO6KHOO

    MySQL como una herencia de sus raices Linux se puedeinteractuar con ella desde la ventana de DOS cargando su shell. Las cosas qse pueden llegar a hacer son las siguientes:

    &UHDUXQ%DVHGH'DWRV

    C:\mysql\bin>P\VTODGPLQFUHDWHGDWDEDVH

    Esto nos crear dentro de c:\mySQL\Datos\ un directorio con ese nombre perovaco. Segn vayamos creando tablas se irn incorporando a ese directorio.

    $FWLYDUHO6KHOO

    C:\mySQL\bin\mySQLCon esto queda activo el shell y ahora podemos empezar a escribir instrucciones

    SQL

    /LVWDUWRGDVODVWDEODVGHXQD%DVHGH'DWRV

    mysql> VKRZWDEOHV

    +----------------------+

    | Tables in database01 |

    +----------------------+

    | table01 |

    | table02 |+----------------------+

    /LVWDUORVFDPSRVGHODWDEOD

    mysql> VKRZFROXPQVIURPWDEOH+---------+----------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +---------+----------+------+-----+---------+-------+

    | field01 | int(11) | YES | | | |

    | field02 | char(10) | YES | | | |

    +---------+----------+------+-----+---------+-------+

    ,QVHUWDUXQUHJLVWURHQXQDWDEOD

    mysql> LQVHUWLQWRWDEOHILHOGILHOGYDOXHVILUVW

    Query OK, 1 row affected (0.00 sec)

    /LVWDUWRGRVORVUHJLVWURVGHXQDWDEOD

    mysql> VHOHFWIURPWDEOH

  • 8/8/2019 MySQL e Visual Foxpro

    5/7

    +---------+---------+

    | field01 | field02 |

    +---------+---------+

    | 1 | first |

    +---------+---------+

    0RGLILFDU7DEODV

    mysql> DOWHUWDEOHWDEOHDGGFROXPQILHOGFKDU

    Query OK, 1 row affected (0.04 sec)

    Records: 1 Duplicates: 0 Warnings: 0

    7DPELpQVHSXHGHHMHFXWDUYDULDVOtQHDVGHLQVWUXFFLRQHV

    El Shell de MySQL te permite poner las instrucciones en una sola lnea o enmltiples lneas . Ten en cuenta que como un residuo de las pocas del teleproceso elfinal deber tener un punto y coma

    Se muestra a continuacin las dos formas de hacerlo:

    Una sola lnea:

    mysql> FUHDWHWDEOHWDEOHILHOGLQWHJHUILHOGFKDU

    Varias lneas:

    mysql> FUHDWHWDEOHWDEOH

    !ILHOG !LQWHJHU !ILHOG

    !FKDU

    El resto es mirar la documentacin y ver todas las opciones disponibles.

    (MHFXFLyQGHVGH9LVXDO)R[3UR

    Para acceder a la Base de Datos MySQL desde Fox lo primero que deberemohacer es configurar el Origen de Datos, para eso hay que ir al Administrador ODBC y configuen nuestro caso un DSN (la instalacin del Driver ODBC MySQL por defecto te instala unOrigen de Datos llamado mySQL-Test que apunta a la Base de Datos de prueba Test que se

    instala con MySQL.

    Para nuestro caso vamos a cambiar el usuario por root que es el que tiene todlos permisos de creacin de Bases de Datos, etc... y poner como Host la direccin IP de nuesmquina. En nuestro caso 192.168.1.3 Al final nuestro origen de datos queda de la siguienteforma:

  • 8/8/2019 MySQL e Visual Foxpro

    6/7

    Una vez hecho lo anterior intentamos conectarnos desde Fox conlas instrucciones:

    64/&211(&7

    Un cdigo sencillo de inicio para probar que todo va bien podra ser:

    FOHDU

    FORVHDOO1RVFRQHFWDPRV1KDQGOH64/&211(&7VDPSOHP\VTOURRWHOYDORUGHEHVHUVXSHULRUD"Q+DQGOH

    6L\DH[LVWHOD%DVHGHGDWRVODERUUDPRV

    "VTOH[HFQ+DQGOH'523'$7$%$6(,)(;,676PL%'DWRV&UHDPRVOD%DVHGHGDWRV\QRVSRVLFLRQDPRVHQHOODSDUDFUHDUXQDWDEOD

    "VTOH[HFQ+DQGOH&5($7('$7$%$6(PL%'DWRV"VTOH[HFQ+DQGOH86(PL%'DWRV"VTOH[HFQ+DQGOH&5($7(7$%/(DJHQGDQRPEUH&+$5GLUHFFLRQ&+$5 WHOHIRQR&+$5HPDLO&+$5,QVHUWDPRVXQUHJLVWUR"VTOH[HFQ+DQGOH,16(57,172DJHQGD9$/8(6-XDQ3pUH]&/DJXQD

    6HYLOOD MXDQ#DJHQGDFRP

    1RVWUDHPRVWRGR

    "VTOH[HFQ+DQGOH6HOHFWIURPDJHQGD

  • 8/8/2019 MySQL e Visual Foxpro

    7/7

    "VTOGLVFRQQQ+DQGOHEURZ

    Siempre que exista un dato incorrecto o se desconozca un dato se nos

    mostrar esta ventana. Una vez correctamente configurada, es mejor marcar Dont prompt on conect.

    A partir de aqu el resto es usar las opciones que Visual FoxPro tiene pa

    el tratamiento Cliente/Servidor que no las comentamos pues no son tema deeste artculo

    /RV%ORTXHRVAl no tener transacciones, los bloqueos toman bastante importancia, sobre todo al ver

    que los bloqueos son exclusivamente de tabla (no hay de registro) y pueden ser de lectura oescritura. El siguiente cdigo nos ilustra su fucionamiento:

    mysql> LOCK TABLES trans READ, customer WRITE;

    mysql> select sum(value) from trans where customer_id= some_id;

    mysql> update customer set total_value=sum_from_previous_statement

    where customer_id=some_id;

    mysql> UNLOCK TABLES;

    Como ves este cdigo es muy parecido al de Fox 2.x usando el FLOCK UNLOCK.

    ,QWHUIDFHV*UiILFRVEsta versin viene con un muy pero que muy rudimentario interfaz grfico que sera el

    equivalente del Query Analizer de SQL Server y que permite visualmente saber que Bases deDatos tenemos y qu tablas y tambin hacer consultas a las tablas.

    Para cargarlo deberemos ejecutar el winmysqladmin.exe y ver el interfazque nos muestra que es de lo ms espartano que se ha conocido.

    Al margen de este interfaz grfico tenemos otros como el de Mascon enhttp://www.scibit.com/Products/Software/Utils/Mascon.htm . De todos modos, ela documentacin del producto se indican unos cuantos gratuitos y de pago.

    FoxPress Abril de 2001

    2001

    All rights r eserved