MySQL e Visual Foxpro

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

)R[3UHVV±$EULO


0\64/\9)3
KWWSZZZISUHVVFRP

3RUOD5HGDFFLyQGH)R[3UHVV


0\64/ es un gestor de Bases de Datos multi-thread, multiusuario que


gestiona bases de datos relacionales poniendo las tablas en ficheros
diferenciados (en vez de en un solo fichero) sometida a las licencias del Open
Source Software.

MySQL funciona sobre plataformas Windows/Linux/SCO/SUN/IBM


AIX/HP-UX. En la sede de www.MySql.com están disponibles esas versiones y
los fuentes correspondientes. La última versión estable es la 3.23

MySQL es muy conocido en el mundo Linux y es una de las Bases de


Datos más usadas. Las críticas que recibe suelen venir de las carencias que el
producto tiene entre las que se citan:

1.- Inexistencia de Transacciones


2.- Imposibilidad de hacer subconsultas (Subquerys)
3.- Inexistencia de Procedimientos almacenados
4.- Carencia de Tiggers en las Claves externas
5.- Sin soporte para integridad referencial.

Esto hace que sea uno de los Gestores de Bases de Datos más rápidos y
así con Bases de Datos de menos de 500.000 registros es practicamente
imbatible. La web tiene una comparativa que es impactante:
http://www.mysql.com/information/benchmarks.htm en la que se compara su
rendimiento con las más conocidas Bases de Datos.

Sus autores defienden el producto diciendo que para realizar


transacciones ya tienen los bloqueos (exclusivamente a nivel de tabla) y que las
transacciones son difíciles de implementar y que poca gente las usa.

Las anteriores limitaciones hacen que el producto no sea apto para


entornos críticos o lugares con masivas entradas de datos. Sí por el contrario
para entornos no críticos y de mera lectura como por ejemplo un catalogo Web.
En las pruebas que hemos hecho se ha observado que las Bases
de Datos se pueden borrar desde Windows (algo parecido a lo que sucede con
los DBF) y es algo diferente de otras bases de datos como SQL Server u Oracle
que no se pueden borrar desde el sistema operativo y así tienen una mayor
seguridad.

En contra de lo que se piensa, MySQL sólo es gratis si se usa


privadamente y como servidor Web (aunque sea comercial). Su uso comercial
por otras aplicaciones no servidoras Web (que necesiten MySQL para
funcionar) está sometido a las condiciones de la licencia.

En el entorno Open Source hay otras Bases de Datos como


PostGresSQL que sí soporta transacciones y tecnicamente está mejor que
MySQL aunque por el contrario tiene un código menos depurado. PostGreSQL
tiene fallos de gestión de memoria mientras que a MySQL es muy difícil hacerla
fallar. Por el contrario, PostGreSQL es Gratis y MySQL no siempre.

Además, mientras PostGres está disponible para todas las


plataformas compatibles con UNIX. Para correr sobre Windows se deben usar
las librerias de transporte de Cygnus Unix/NT. Lá ultima versión disponible es la
PostgreSQL es la 7.0.3. A diferencia de MySQL que se puede bajar
directamente la versión binaria para windows. PostGreSQL no tiene disponible
una versión binaria para windows y deben realizarse todas las operaciones que
en la documentación se indican para que funcione en esos sistemas operativos:
cosa harto engorrosa.

,QVWDODFLyQGH0\64/HQXQ(QWRUQR:LQGRZV

A la hora de instalarlo hay que diferenciar si estamos en Win 9x o en


entornos NT/W2k pues las instalaciones son diferentes.

En nuestro caso lo probamos en un Win95 (primera versión). En este


entorno hubo que hacer lo siguiente para ponerla en marcha:

1.- Instalar el soporte de Microsoft Socket 2 (como se sabe Win 95


(primera versión) y la versión OEM de la Release 2 de Win 95 no venían con el
socket 2 y es necesario intalarlo). En los ficheros de este mes está el instalador.
Si 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 las


versiones Win./NT/2000. Es mejor instalarlo en C:\ pues si se escoje otra unidad
hay que hacer algunos cambios. En los ficheros del mes está la versión binaria
de MySQL
3.- Instalar el Driver ODBC para MySQL. También está entre los ficheros
del mes. El instalador tiene un aire de 16 bits pero ya da totalmente soporte a
32 bits. Al instalarlo en una máquina Win 95 limpia no quedó bien la instalación
y hubo que repetirla una vez instalado VFP 6.0 que ya incorporó el
administrador ODBC32. Una vez instalado El Administrador se volvió a instalar
y en este caso ya quedó correctamente instalado.

Un comentario añadido a la instalación es que todos los ficheros


necesarios se instalan en el directorio que se le indique y ninguno en
Windows/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 otras


máquinas sin complejas inscripciones en el Registry o cosas similares.

3XHVWDHQPDUFKD
Una vez instalado debemos ponerlo en marcha. Para ponerlo en marcha
basta con ejecutar desde una ventana de órdenes DOS la instrucción:

C:\mySQL\bin\MySQLd

Si estás trabajando con Win NT la instrucción sería:

C:\mySQL\bin\MySQLd-nt

Para desconectarlo habría que poner:

C:\bin\mysqladmin -u root shutdown

Esto sorprende un poco pues una vez puesto en marcha no se


observa ningún icono o advertencia de que está en marcha: quizás es una
deformación del mundo Windows...

Para comprobar que está en marcha podemos escribir:

C:\ bin\mysqlshow

Que nos diría qué bases de datos tenemos en este momento en el


Servidor
0DQLSXODUOD%DVHGH'DWRVGHVGHHO6KHOO
MySQL como una herencia de sus raices Linux se puede
interactuar con ella desde la ventana de DOS cargando su shell. Las cosas que
se 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 pero
vacío. Según vayamos creando tablas se irán incorporando a ese directorio.

$FWLYDUHO6KHOO

C:\mySQL\bin\mySQL

Con 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> LQVHUWLQWRWDEOH ILHOGILHOG YDOXHV 


ILUVW


Query OK, 1 row affected (0.00 sec)

/LVWDUWRGRVORVUHJLVWURVGHXQDWDEOD

mysql> VHOHFW IURPWDEOH


+---------+---------+
| 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 línea o en


múltiples líneas . Ten en cuenta que como un residuo de las épocas del teleproceso el
final deberá tener un punto y coma

Se muestra a continuación las dos formas de hacerlo:

Una sola línea:

mysql> FUHDWHWDEOHWDEOH ILHOGLQWHJHUILHOGFKDU  

Varias líneas:

mysql> FUHDWHWDEOHWDEOH
! ILHOG
 !LQWHJHU
 !ILHOG
 !FKDU  

El resto es mirar la documentación y ver todas las opciones disponibles.

(MHFXFLyQGHVGH9LVXDO)R[3UR
Para acceder a la Base de Datos MySQL desde Fox lo primero que deberemos
hacer es configurar el Origen de Datos, para eso hay que ir al Administrador ODBC y configurar,
en nuestro caso un DSN (la instalación del Driver ODBC MySQL por defecto te instala un
Origen 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 todos
los permisos de creación de Bases de Datos, etc... y poner como Host la dirección IP de nuestra
máquina. En nuestro caso 192.168.1.3 Al final nuestro origen de datos queda de la siguiente
forma:
Una vez hecho lo anterior intentamos conectarnos desde Fox con
las instrucciones:

64/&211(&7 

Un código sencillo de inicio para probar que todo va bien podría ser:
FOHDU
FORVHDOO
1RVFRQHFWDPRV
1KDQGOH 64/&211(&7
VDPSOHP\VTO

URRW




HOYDORUGHEHVHUVXSHULRUD
"Q+DQGOH

6L\DH[LVWHOD%DVHGHGDWRVODERUUDPRV
"VTOH[HF Q+DQGOH
'523'$7$%$6(,)(;,676PL%'DWRV


&UHDPRVOD%DVHGHGDWRV\QRVSRVLFLRQDPRVHQHOODSDUDFUHDUXQDWDEOD
"VTOH[HF Q+DQGOH
&5($7('$7$%$6(PL%'DWRV

"VTOH[HF Q+DQGOH
86(PL%'DWRV

"VTOH[HF Q+DQGOH
&5($7(7$%/(DJHQGD QRPEUH&+$5  GLUHFFLRQ&+$5  
 WHOHIRQR&+$5  HPDLO&+$5 
 

,QVHUWDPRVXQUHJLVWUR
"VTOH[HF Q+DQGOH,16(57,172DJHQGD9$/8(6
-XDQ3pUH]

&/DJXQD
6HYLOOD




MXDQ#DJHQGDFRP
 

1RVWUDHPRVWRGR
"VTOH[HF Q+DQGOH6HOHFW IURPDJHQGD 
"VTOGLVFRQQ Q+DQGOH 
EURZ

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


mostrará esta ventana. Una vez correctamente configurada, es mejor marcar el
Don’t prompt on conect.

A partir de aquí el resto es usar las opciones que Visual FoxPro tiene para
el tratamiento Cliente/Servidor que no las comentamos pues no son tema de
este artículo

/RV%ORTXHRV
Al 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 o de
escritura. El siguiente código 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 código es muy parecido al de Fox 2.x usando el FLOCK y
UNLOCK.

 ,QWHUIDFHV*UiILFRV
Esta versión viene con un muy pero que muy rudimentario interfaz gráfico que sería el
equivalente del Query Analizer de SQL Server y que permite visualmente saber que Bases de
Datos tenemos y qué tablas y también hacer consultas a las tablas.

Para cargarlo deberemos ejecutar el winmysqladmin.exe y ver el interfaz


que nos muestra que es de lo más espartano que se ha conocido.

Al margen de este interfaz gráfico tenemos otros como el de Mascon en


http://www.scibit.com/Products/Software/Utils/Mascon.htm. De todos modos, en
la documentación del producto se indican unos cuantos gratuitos y de pago.





FoxPress–Abril

  de
2001
© 2001 All rights reserved


También podría gustarte