TxApuntesDbase.gif (4280 bytes)

txManualesChico.gif (18969 bytes)

 

Este ultimo tiempo, los computadores se han vuelto imprescindibles por el gran volumen de información que pueden manejar y su capacidad de realizar tareas tediosas sin cometer errores.

Es así como más y más personas ajenas al area de computación desearían manipular en forma eficiente el manejo de la información. Para ello se han creado lenguajes de alto nivel que permiten darle ordenes al computador para que este haga lo solicitado anteriormente de forma correcta y confiable.

En este apunte presentaremos a DBASE III PLUS : sus comandos y una pequeña introducción a la programación.

 

Índice:

Anteriormente se menciono el MANEJO DE DATOS a través de un lenguaje; primero describiremos los tipo de datos manejados por DBASE III PLUS :

I. LOS COMANDOS DE DBASE III PLUS


La estructura de los comandos es lo que se llama sintaxis. En DBASE se tiene la siguiente generalización :

VERBO**ALCANCE**LISTA DE EXPRESION**CONDICION , donde :

Ahora analizaremos las etapas y los comandos que se usarían en forma mas frecuente en el ciclo de vida de una base de dato.

Definir una base de datos


.CREATE <nombre de archivo>

A continuación se nos presenta una especie de editor donde se especifican los campos, los tipos y largo de los datos.

.MODIFY STRUCTURE

Permite modificar la estructura de la tabla y su aspecto es similar al de CREATE, permitiendo mantener los datos ya ingresados cambiándolos al nuevo formato.

Abrir y cerrar archivos


.USE [<tabla>]

Indica que todas las operaciones que se realicen se efectuaran en la tabla indicada.

Si no se agrega un nombre, se cerrara todo lo que esta en uso.

.CLOSE <opción>

Cierra diferentes elementos dependiendo de la opción:

Agregar registros a una tabla en uso


.APPEND [BLANK]

Permite agregar datos al final de el archivo. Con la opción BLANK solo se agrega un registro en blanco al final de el archivo.

.INSERT [BEFORE] [BLANK]

Lo mismo que el comando anterior con la diferencia de que agrega los registros en la posición actual de el archivo, siempre después de el actual a menos que se especifique lo contrario agregando al final BEFORE.

Cambiar el contenido de uno o mas registros


.EDIT [<alcance>] [FIELDS <lista de campos>]

Permite cambiar el contenido de uno o mas registros de una tabla.

.BROWSE

Permite lo mismo que el comando EDIT, salvo que despliega varios registros a la vez.

NOTA : Para editar un campo tipo memo se deben pulsar las teclas CTRL - Pg Dn y para finalizar la edición se pulsa CTRL - Pg Up.

Despliegue de contenido


.DISPLAY [OFF] [ALL / NEXT n] [lista de campos]

.LIST [OFF] [ALL / NEXT n] [lista de campos]

Ambos despliegan el contenido de uno o mas registros, la diferencia esta en el ritmo de despliegue en pantalla, dejaremos al lector usuario descubrir la diferencia.

Desplazamiento en la base de datos


Registro activo: registro en que se esta actualmente. Se puede cambiar a través de los siguientes comandos:

.LOCATE [FOR <condición>] [WHILE <condición>]

Permite buscar registros que cumplan con algún patrón. La búsqueda es desde el primer registro hasta el fin de el archivo deteniéndose en el primer registro que cumpla con la característica indicada.

Para que la búsqueda continúe al siguiente se debe dar el comando:

.CONTINUE

Borrado de registros


.DELETE [<alcance>]

Borra en forma lógica uno o mas registros.

.PACK

Borra en forma física los registros borrados con DELETE.

.RECALL

Recobra los registros borrados por el comando DELETE.

Organización de la información

Ordenar registros

.SORT TO <archivo> ON <campo>

Crea una tabla con la misma estructura pero sus registros están ordenados según el orden ascendente que implica el campo especificado.

Indexar tablas

Hasta el momento se ha trabajado con tablas que son accedidas en un orden secuencial, pero existe otra alternativa que es tener un archivo de índice para el manejo de información; el cual nos permite manipular la tabla ordenada por uno mas campos para llegar en forma rápida a registros específicos en tablas muy grandes.

.INDEX ON <llave> TO <archivo-índice>

Permite indexar la tabla creando otro archivo de extensión NDX. La llave es una expresión numérica o alfanumérica en función de los campos.

Uso de la tabla indexada

.USE <archivo> INDEX <archivo-índice>

Se activa la tabla y su archivo de índices.

.REINDEX

Por si se llegare a ocupar la tabla sin su archivo de índices, se debe hacer lo siguiente:

.USE <archivo> INDEX <archivo-índice>
.REINDEX

Moviéndose a través de una tabla indexada

Se pueden ejecutar los mismos comandos de movimiento del punto 6 y se agregan los siguientes exclusivos de tablas indexadas:

.FIND <llave literal>

Se posiciona en el primer registro de el archivo indexado que contiene la expresión en el campo determinado por la llave.

.SEEK <expresión>

Encuentra y se posiciona en el primer registro que contiene la expresión en la llave.

Creación de reportes y labels


.CREATE REPORT <nombre>

.MODIFY REPORT <nombre>

Permiten crear y modificar un reporte respectivamente.

.REPORT FORM <nombre> TO PRINT

Permite usar el reporte hecho anteriormente.

Para labels basta con cambiar la palabra REPORT por la de LABEL.


II. PROGRAMACION


Un programa en dBASE es un conjunto de instrucciones que se ejecutan una a una sin estar previamente compiladas, osea, dBASE es un lenguaje interpretado.

Ejecutar un programa

DO <nombre del programa>

Crear un programa en dBASE

MODIFY COMMAND <nombre del programa>

A continuación se dan una serie de comandos de interés :

&& y * : indican comentarios

Contorno de un programa :

SET TALK OFF
SET STATUS OFF
SET DATE ITALIAN
CLEAR ALL

Abrir archivos y areas de trabajo

SELECT <n1>
USE <nombre de la base> INDEX <archivo de índices>
SELECT <n2>
USE <base2> INDEX <indice2>

Ejemplo :

     SELECT 1    && Este Select viene por defecto 
     USE Tabla INDEX apellido, edad 

Entrada y Salida de datos

@ i, j [SAY "mensaje"] [GET <variable>]

El cursor se posiciona en el punto (i,j) y puede desplegar un mensaje a partir de esa posición, obtener una variable, o ambas cosas. Lo ultimo puede realizarse previa inicialización de la variable, que incluso puede ser un campo de la tabla.

Otras alternativas:

?? "mensaje" + <variable> + "Otro mensaje" + ...
? "idem" + <variable>
SET PRINT ON
SET TALK ON

Ejemplo 1 :

     CLEAR
     @2,1  SAY  "Menu Principal"
     @4,1  SAY  "1 - Agregar"
     @5,1  SAY  "2 - Modificar Existente"
     @6,1  SAY  "3 - Imprimir"
     OPCION = 1
     WAIT  "Escoja una opción"  TO  OPCION

Ejemplo 2 :

     CLEAR
     @2,1  SAY  "Ingrese los datos"
     @4,1  SAY  "Apellido"   GET  APELLIDO
     @5,1  SAY  "Nombre"     GET  NOMBRE
     @6,1  SAY  "Ocupacion"  GET  OCUPACION
     READ
     .
     .
     .
     @8,1  SAY  "Fecha ingreso"  GET  FECHA
     @9,1  SAY  "Sueldo"         GET  SUELDO
     READ

Estética

@i1,j1 [FILL] TO i2,j2 [DOUBLE]
@i1,j1 CLEAR TO i2,j2

Otro comando de edición es: TEXT
Con este comando se puede colocar cualquier texto, sin necesidad de ponerlo entre comillas. Para finalizar este modo hay que escribir END TEXT.

Control de flujo

A continuación se dará la sintaxis de los principales controles de flujo .

Instrucción IF - ELSE

 
IF <condición>
<Instrucciones>
-ELSE
<Instrucciones>]
ENDIF

Ejemplos de condición :

 
     SEXO = "M"
     (YEAR(fecha) < 1970) .AND. (LIBRE)
     .NOT.EOF()

Ciclo WHILE

DO  WHILE  <condición>
     <Instrucciones>
     [LOOP]
     [EXIT]
ENDDO

Ciclo DO CASE

DO  CASE
     CASE  <condicion1>
     ==================
     CASE  <condicion2>
     ==================
     .......
     .......
     [OTHERWISE]
     .......
     ENDCASE

Ejemplo

     
     DO  CASE
          CASE  OPCION = 1  DO NUEVO
          CASE  OPCION = 2  EDIT
          CASE  OPCION = 3  DO IMPRIMIR
     END CASE

NOTAS

  1. Indices : las llaves no tienen que ser muy largas si se tienen muchos campos.
  2. Si un ciclo fue mal escrito, se ignora.
  3. Si se comparan dos funciones string , al compararse siempre da resultado verdadero (en un IF).

Grupo de Consultoría
Centro de Computación, Universidad de Chile