Para saber si tengo posibilidad de accesar alguna Base de Datos
se escribe:
>PRINT SQLLIST(0) <--- y
me deberán aparecer los nombres de estas.
Ejemplo:
Chile Company
CD-Store
Cuentas por Cobrar
MS Access 97 Database
dBASE Files
Excel Files
FoxPro Files
Text Files
BASIS Chile Company Database
Con esa lista
de Bases de Datos, lo único que nos quedaría por hacer es abrir la que necesitemos
y comenzar a trabajar. Para abrir una Base de Datos usamos la siguientes instrucción:
>SQLOPEN (1)"Chile Company"
Existe una forma
rápida de saber cuáles son las tablas de datos de la Base de Datos abierta escribiendo:
>PRINT SQLTABLES(1) ---> y
aparecerán los nombres de las tablas disponibles.
Lo que nos queda
por ver es como accesar una tabla de datos. Para eso se necesita aún tres pasos:
1. Preparar la sintaxis del SQL a ejecutar, por ejemplo:
>SQLPREP (1)"select * from item price<4.5"
2. Obtener la estructura o formato de su contenido, por ejemplo así:
>DIM REG$:SQLTMPL(1)
3. Hacer que se ejecute el SQL así:
>SQLEXEC (1)
4. Instrucción para indicar que los registros
de la tabla van a ser leídos secuencialmente:
>REG$=SQLFETCH(1,ERR=FINAL)
5. Con una línea como la siguiente se logra
el despliegue de algunos de los campos del registro:
>PRINT reg.item_num$," ",reg.description$,"
",reg.price
Los siguientes son ejemplo de varios programas que utilizan SQL. El primero define una tabla
de datos llamada PRUEBA y permite insertarle registros. Note que con Bases de
datos nativas ya no se permite usar tipos de campo NUMERIC/DECIMAL, pero puede
usar FLOAT/DOUBLE/REAL. El uso de parámetros como el signo de pregunta (?) con
SQL, hace más parametrisable sus aplicaciones y se presta para desarrollar funciones
y rutinas de propósito general. Observe como se aplica en las líneas 0080 y
0130.
0010 REM "Crear Tabla y agregar nuevos registros
0020 BEGIN
0030 LET db=SQLUNT; SQLOPEN (db)"Cuentas por Cobrar"; REM "Abre
Base de Datos
0040 SQLPREP (db)"Drop table PRUEBA"; SQLEXEC (db,ERR=0050); REM "Elimina
Tabl
0040:a PRUEBA
0050 INPUT (0,LEN=3)"De que longitud quiere que sea el campo para el nombre:
"
0050:,long:(128); IF long=0 THEN STOP
0060 SQLPREP (db)"Create table PRUEBA (num_orden char(4) primary key, cliente
...
|