3. MANEJO DE FORMATOS Una de las actividades más comunes en el manejo de información es el intercambio de datos entre diferentes formatos. Visual FoxPro nos proporciona algunos comandos para realizar ese proceso, entre los cuales podemos encontrar: COPY TO e IMPORT. El comando COPY TO genera una copia de los registros de una tabla DBF, grabándolos en un formato diferente especificado por el usuario. La sintaxis para el comando COPY TO es la siguiente: COPY TO nombre [FOR condición] TYPE formato Debemos mencionar que se necesita tener una tabla de datos en uso para ejecutar el comando y que la condición sólo es necesaria si queremos filtrar los registros que se convertirán al formato deseado.
4. Si tenemos una tabla de datos en Visual FoxPro, de nombre GENERAL.DBF y queremos convertirla al formato de Excel, haríamos lo siguiente:
5. Con lo cual se obtendría un archivo llamado GENERAL.XLS Donde la primera fila corresponde a los nombres de los campos y las restantes filas son los registros copiados. Cabe mencionar que por características propias del entorno de Visual FoxPro solamente se podrán copiar 65535 registros.
6. El comando IMPORT convierte un archivo de otro formato a DBF. En el caso de Excel, la primera fila de la hoja se convertiría en el primer registro de la tabla. A cada campo se le asigna un nombre genérico, empezando por la letra A y siguiendo el orden alfabético. La sintaxis del comando es la siguiente: IMPORT FROM archivo TYPE formato El ancho de los campos y algunas otras características deberán corregirse manualmente después de importar los datos, pero queda clara la ventaja de utilizar el comando IMPORT para transferir la información.
7. El siguiente comando importaría los datos de Excel y crearía una tabla DBF, incluyendo la estructura y los registros correspondientes.
9. Cuando se manejan grandes volúmenes de datos es necesario darle un tratamiento veloz y preciso a la información. Por eso se requiere de la utilización de un manejador de bases de datos rápido y flexible. Visual FoxPro permite hacer consultas mediante BROWSE, LIST y DISPLAY, así como actualizaciones de los datos mediante REPLACE; sin embargo estos comandos no son la mejor opción cuando tenemos bases de datos con millones de registros. Por esta razón se prefieren alternativas como SQL o MySQL que proporcionan las condiciones anteriormente descritas. SQL (StructuredQueryLanguage = Lenguaje Estructurado de Consultas), es el método más eficaz para ejecutar consultas y actualizaciones en una base de datos. Visual FoxPro y Access manejan su versión de SQL de manera interna, pero también se cuenta con SQL Server para instalación en servidores de bases de datos.
10. Observe el tamaño de esta tabla de datos: 3,976,545 registros Y a continuación una muestra del tiempo de acceso en Visual FoxPro y SQL
11.
12. Y para finalizar esta sección de la Charla … La tabla RESUMEN.DBF tiene en el campo SEXO los valores 1 y 2 para indicar Masculino y Femenino. ¿Cómo podrían cambiarse los datos del campo SEXO para que tenga los valores M y F respectivamente? Puede utilizar REPLACE de Visual FoxPro o UPDATE de SQL. USE RESUMEN REPLACE ALL SEXO WITH “M” FOR SEXO=“1” REPLACE ALL SEXO WITH “F” FOR SEXO=“2” Mejores soluciones … Usando Visual FoxPro USE RESUMEN REPLACE ALL SEXO WITH IIF(SEXO=”1”,”M”,”F”) Usando SQL UPDATE RESUMEN SET SEXO= IIF(SEXO=”1”,”M”,”F”)
14. Una de las formas de asegurar nuestras aplicaciones y el acceso a datos es mediante el uso de contraseñas (passwords). Existen varias formas de almacenar las contraseñas utilizando Visual FoxPro, entre las cuales podemos mencionar: En un archivo de memoria En una tabla DBF sin encriptar En una tabla DBF encriptada SAVE TO archivo RESTORE FROM archivo Con la función SYS(2007) La función SYS(2007) genera una secuencia de seis caracteres numéricos que no es predecible y por lo tanto no puede descifrarse, lo cual sirve para nuestro propósito.
15. El primer paso es crear las contraseñas cifradas en la tabla de usuarios, Para nuestro ejemplo tenemos los campos de la siguiente tabla:
16. Luego se diseña el procedimiento que realizará la validación del acceso: Variables para Usuario y Password