SERIE CP/M Y ZX SPECTRUM dBASE II I - Manual de las versiones 2.xx en adelante Tipos de datos aceptados C - Todo caracter ASCII, espacio, letras, números y símbolos. N - Todo número positivo y negativo, signos y cifras decimales. L - Todo valor de tipo verdadero (Y, y, T, t) o falso (N, n, F, f). D - Fechas expresadas de forma estándar (mes/día/año). Inexistente en dBase II, se puede reemplazar por C,8 (mm/dd/aa o dd/mm/aa). Operadores Operadores lógicos .NOT. - Negación lógica .AND. - Conjunción lógica .OR. - Disyunción lógica Operadores de cadena + - Concatenación de cadenas $ - Búsqueda de subcadenas Operadores matemáticos + - Suma - - Resta * - Multiplicación / - División ( ) - Paréntesis de reagrupacion **,^ - Exponencial. Inexistente en dBase II. Operadores relaciónales < - Menor que > - Mayor que = - Igual <>, # - Distinto que <= - Menor o igual que >= - Mayor o igual que Funciones DATE() - Da la fecha & - Lectura del contenido de la variable var ? - Visualización del contenido de una variable $(,,) - Extracción de una subcadena !() - Conversión de los caracteres en mayúsculas * - Marca de los registros que son borrados # - Lectura del número del registro AT - Búsqueda de la subcadena LEN - Medida de la longitud de la cadena TRIM(expC) - Cancelación de espacios vacios en expC TYPE(expC) - Visualiza el tipo de variable ASC(expC)(expC2) - Conversión de caracteres a código ASCII CHR(ascii) - Conversión del codigo ASCII a caracteres STR(expN) - Conversión del numero expN a caracteres VAL(expC) - Conversión de caracteres a números EOF - Da el final del archivo FILE(fich) - Nos dice si el archivo fich existe o no INT(expN) - Parte entera de expN Comandos ? - Muestra una expresión en la línea siguiente ?? - Visualiza una expresión en la misma linea @(coordenadas)(SAY (PICTURE/USING)) (GET (PICTURE ) _ SAY - Muestra los datos formateados en la impresora/pantalla _ GET - Lee los datos formateados para edición ACCEPT (cadena) TO (var) - Memoriza una cadena de caracteres en una variable de memoria APPEND BLANK - Añade registros vacíos al final del archivo APPEND FROM (FOR) (SDF)(DELIMITED) (WHILE) - Añade registros en un archivo tomándolos de otro BROWSE (FIELDS ) - Muestra una pantalla de 17 registros por cada archivo CANCEL - Suspende la ejecución del programa restableciendo el prompt CHANGE () FIELDS (FOR/WHILE) - Escribe los datos en campos específicos CLEAR GETS - Anula todas las variables GET CLEAR MEMORY - Borra todas las variables de memoria CONTINUE - Continúa la búsqueda en los archivos después de la orden LOCATE COPY TO () (FIELDS (FOR/WHILE (SDF/ DELIMITED) (WITH ))) - Copia el archivo en USE a otro archivo DBF o txt, cuando se utilizan las opciones SDF o DELIMITED COPY TO STRUCTURE (EXTENDED) (FIELDS ) - Duplica la estructura del archivo USE a un nuevo archivo COUNT () FOR/WHILE ) (TO ) - Cuenta el número de registros especificados en el "rango" CREATE (fichero .dbf) FROM ) - Define la estructura de un archivo y lo añade al directorio DELETE () (FOR/WHILE ) - Marca los registros especificados para el borrado DELETE fichero - Borra el archivo especificado DISPLAY () (FIELD) (FOR/WHILE) (OFF) - Lista los registros del archivo activo (en USE) abierto DISPLAY ficheroS (ON ) (LIKE ) - Lista todos los archivos presentes en el disco o bien sólo aquellos con la extensión indicada DISPLAY MEMORY - Lista las variables de memoria DISPLAY STATUS - Lista el estado de un archivo y todos sus derivados, indexado, alterno y parámetros de sistema DISPLAY STRUCTURE - Visualiza la estructura del archivo DO / (WITH ) - Ejecuta un programa o un procedimiento y opcionalmente, pasa los parámetros al programa DO CASE... CASE (OTHERWISE)... ENDCASE - Ejecuta solo una de las posibles acciones instalada en el procedimiento. Se puede introducir un procedimiento alternativo con OTHERWISE. Se concluye todo con ENDCASE DO WHILE ...ENDDO - Permite la estructuración de procedimientos; salta todas las órdenes entre la condición no cumplida y ENDDO. DO WHILE tiene que acabar con ENDDO EDIT (RECORD) - Permite cambios en el contenido de los campos EJECT - Hace avanzar el papel en la impresora ERASE - Borra la pantalla FIND - Coloca el cursor en la primera cadena con los caracteres especificados que encuentra GO/GOTO BOTTOM/BOTTOM/TOP/ - Coloca el puntero en el registro especificado IF...(ELSE)...ENDIF - Permite la ejecución condicional de órdenes en un programa y opcionalmente, con la alternativa ELSE. Cada IF tiene que terminar con ENDIF INDEX ON TO - Cataloga un archivo según una clave especificada INPUT () TO - Permite insertar una cadena de caracteres en la variable de memoria INSERT (BLANK) (BEFORE) - Inserta un registro en una posición específica del archivo JOIN TO FOR (F1ELD ) - Une dos archivos combinando los campos en un tercero LIST (FOR/WHILE condicion) (FIELDS ) (OFF) - Lista los campos de un archivo LIST MEMORY/STATUS/STRUCTURE - Igual que el DISPLAY MEMORY, STATUS o STRUCTURE LOCATE () FOR - Coloca el puntero en el registro que satisface la condición especificada LOOP - Salta todas las órdenes situadas entre LOOP y ENDDO MODIFY COMMAND - Permite la edición de archivos con caracteres ASCII, incluyendo los programas en los archivos (.prg) MODIFY STRUCTURE - Modifica la estructura de un archivo .DBF en uso NOTE/* - Inserta comentarios en el programa PACK - Elimina los registros marcados del disco QUIT - Cierra todos los archivos y sale del sistema dBASE READ - Permite la lectura de las variables insertadas en el campo mediante GET RECALL () (FOR/WHILE ) - Reinstala los registros marcados para el borrado REINDEX - Recataloga un archivo INDEX RELEASE (ALL) (ALL like/except) (ALL EXCEPT ) - Borra las variables de memoria REMARK - Aumenta la intensidad en la pantalla o impresora RENAME TO - Da al archivo un nuevo nombre REPLACE () (campo) WITH (,,...) (FOR/WHILE ) - Modifica el contenido de los campos especificados REPORT FORM () (FOR (PLAIN) (HEADING NOEJECT) (TO PRINT) (TO FILE ) - Formatea un tabulado de datos RESET () - Reinicia para cambiar disco en CP/M RESTORE FROM (ADDITIVE) - Llama las variables de la memoria RETURN (TO MASTER) - Concluye el programa. La línea donde está RETURN es la última línea ejecutable SAVE TO (ALL LIKE/ EXCEPT ) - Copia las variables de memoria en un archivo SELECT (n/alias) (PRIMARY) (SECONDARY) - Abre archivos simultáneamente (en el dBASE II hasta 2) SET - Instala los parámetros del dBASE TO - para indicar una acción a ejecutar ON - para activar una operación OFF - para desactivar una operación SET ALTERNATE TO - Crea un archivo para guardar una salida SET ALTERNATE ON/OFF - Transmite o no el archivo de salida SET BELL ON/OFF - Conecta/desconecta el sonido durante la entrada de datos SET CARRY ON/OFF - Escribe o no el contenido del ultimo registro añadido con APPEND SET CONFIRM ON/OFF - Desactiva/activa el salto automático después de introducir una variable sin RETURN SET CONSOLE ON/OFF - Transmite/suspende todas las uniones entre el teclado y la pantalla SET DATE DO - Instala el formato de la fecha SET DEBUG ON/OFF - Transmite/suspende la salida del DEBUG a la impresora SET DEFAULT TO - Especifica el disco en funcionamiento SET DELIMITER TO (DEFAULT) - Especifica la delimitación para la visualización de los campos y variables SET DELIMITER ON/OFF - Visualiza campos y variables delimitados en modo normal/reverso SET ECHO ON/OFF - Hace aparecer o no las órdenes de la pantalla en la impresora SET ESCAPE ON/OFF - Anula/continúa la ejecución del archivo comando cuando se pulsa ESC SET EJECT ON/OFF - Instala/suspende el cambio de página automático SET EXACT ON/OFF - Requiere o no la comparación exacta del carácter SET FORMAT - Abre un archivo FORMAT para la entrada de datos SET HEADING ON/OFF - Centra o no, las variables en la pantalla SET INDEX TO - Abre los archivos catalogados SET INTENS1TY ON/OFF - activa/desactiva el modo inverso en la pantalla SET LINKAGE ON/OFF - Conecta las órdenes secuencialmente ejecutándolas ya sea en el archivo primario, ya en el secundario. Mantiene independiente el archivo primario del secundario SET MARGIN TO n - Fija en "n" el margen izquierdo de la impresora SET PRINT ON/OFF - Transmite o no, la salida de datos a la impresora SET RAW ON/OFF - Instala/anula las columnas en las listas SET SCREEN ON/OFF - Instala/suspende el uso de las órdenes EDIT, APPEND, INSERT a toda pantalla SET STEP ON/OFF - Para o no, la ejecución de un programa tras llevar a cabo cada orden SET TALK ON/off - Transmite o no, a la pantalla los resultados de la ejecución de una orden SKIP n (+) (-) - Coloca el puntero en el registro y lo hace avanzar y retroceder según las especificaciones dadas SORT TO ON (/A) (/D) (,campo2) (/A) (/D) () (FOR ) - Crea un archivo ordenado, según un campo determinado SUM () () TO (FOR/WHILE ) - Calcula y lista la suma de una expresión referente a los registros del archivo especificado en el rango TOTAL ON (FIELD ) (FOR/WHILE ) - Crea un sumario de un archivo pre-ordenado con SORT conteniendo totales numéricos USE () (INDEX ) (ALIAS ) - Especifica el archivo a utilizar para todas las operaciones hasta que no sea admitido otro USE WAIT (TO ) - Suspende el proceso del programa hasta que no se apriete una tecla y la almacena en var. II - Comandos y funciones agregados a partir de la version 2.3x en adelante (no existentes en la 2.3b y anteriores) Desde la version 2.31 (Nota: eso es lo que dice en el HELP del dBase 2.41) APPEND, INSERT, EDIT, CREATE - pueden usar un fichero de formato para controlar las pantallas BROWSE - puede trabajar con una lista de varios campos DISPLAY STATUS - muestra datos/index en uso y fija la configuracion READ y REPLACE - pueden usar indexados sin actualizar con NOUPDATE RELEASE - ahora puede liberar subconjuntos de variables de memoria RESTORE - puede restaurar variables aunandolas a las ya existentes SAVE - ahora puede salvar subconjuntos de variables de memoria SET RAW ON - elimina los espacios extra en DISPLAY y ? UPDATE - la clausula de reemplazo puede tener frases WITH Nuevos comandos: HELP () - Explica las órdenes dadas del dBASE II (este comando de ayuda no existe en la 2.3B) STORE TO () - Conserva una expresión en una o más variables en memoria SET COLOR TO () - Instala la visualización en color TEXT ENDTEXT - Visualiza una parte del texto de un archivo orden. El texto tiene que finalizar con ENDTEXT UPDATE - permite actualizaciones en lote de una base de datos. A partir de la version 2.4: RANK() - funcion; retorna el valor ASCII del primer caracter. A partir de la version 2.43: SET F - fija el valor de la tecla funcion en IBM PC, Victor, TI Professional y terminales compatibles. SET SPACE - determina si un campo numerico imprime o no en la columna cero usando ?. No afecta a REPORT FORM. TEST(exp) - funcion que determina la validez de . A manera de apendice: LIMITACIONES numero de campos por registro 32 max numero de caracteres por registro 1000 max numero de registros por base de datos 65535 max numero de caracteres por cadena 254 max precision de campos numericos 10 digitos numero mayor 1.8 x 10**63 aprox. numero menor 1.0 x 10**-63 aprox. numero de variables 64 max numero de caracteres por linea de comando 254 max numero de expresiones en SUM 5 max numero de caracteres en una cabecera REPORT 254 max numero de caracteres en una clave indexada 100 max numero de GETS posibles 64 max numero de ficheros abiertos a la vez 16 max CODIGOS DE CURSOR A PANTALLA COMPLETA ctrl-X mueve el cursor ABAJO al sigte. campo (= ctrl-F). ctrl-E mueve el cursor ARRIBA al campo anterior (= ctrl-A). ctrl-D mueve el cursor un caracter ADELANTE. ctrl-S mueve el cursor un caracter ATRAS (= ). ctrl-G BORRA el caracter detras del cursor (= ). ctrl-Y borra a la derecha del cursor en el campo en curso. ctrl-V cambia entre los modos INSERTAR y sobreescribir. ctrl-Q ignora los cambios hechos al registro y vuelve al prompt. ctrl-W salva todos los cambios y retorna al prompt. EN MODO EDITAR ctrl-U activa/desactiva la marca de borrado (DELETE). ctrl-C salva el registro en curso y AVANZA al sigte. registro. ctrl-R salva el registro en curso y REGRESA al registro previo. ctrl-Q ignora los cambios hechos al reg. y retorna al prompt. ctrl-W salva todos los cambios y retorna al prompt. EN MODO BROWSE (navegacion) ctrl-B provoca desplazamiento a la derecha campo a campo. ctrl-Z igual pero hacia la izquierda. EN MODO MODIFICAR ctrl-T borra la linea en curso y las de abajo suben un lugar ctrl-N INSERTA una nueva linea donde esta el cursor. ctrl-C desplaza hacia abajo media página. ctrl-R desplaza hacia arriba una linea. ctrl-Q ignora todos los cambios y retorna. ctrl-W escribe todos los cambios en el disco y retorna al prompt. EN MODO APPEND (agregar) termina APPEND si el cursor esta en la primera posicion del primer campo. ctrl-Q ignora todo y retorna sl prompt. ctrl-W salva el registro en curso, pasa al sigte. y termina APPEND si el cursor esta en la primera posicion del primer campo. TECLAS DE CONTROL USADAS SIN PANTALLA COMPLETA ctrl-P activa/desactiva la impresora. ctrl-R repite el ultimo comando ejecutado. ctrl-X borra la linea de comandos sin ejecutar nada (cancela). ctrl-H retrocede un caracter. ctrl-M emula o efectua un retorno de carro. ctrl-S inicia/detiene una operacion. MENSAJES DE ERROR Bad decimal width field -- se intento ingresar un valor no valido para el campo decimal en CREATE o MODIFY STRUCTURE. Bad file name -- se intento crear o acceder a un fichero con un nombre no valido. Bad name field -- se intento ingresar un nombre de campo ilegal en CREATE o MODIFY STRUCTURE. Bad type field -- se intento dar un tipo ilegal a un campo en CREATE o MODIFY STRUCTURE. Tipos validos son C, L y N. Bad width field -- se intento dar un ancho ilegal a un campo en CREATE o MODIFY STRUCTURE. El ancho debe estar entre 1 y 254 para caracteres, y entre 1 y 64 para numeros. ** Beyond string -- o la posicion inicial o el largo de la funcion de subcadena ($) exceden al largo real de la cadena. Cannot open file -- se intento cargar (LOAD) o reataurar (RESTORE) un fichero corrupto (HEX o MEM). Command file cannot be found -- se intento hacer (DO) un fichero de comandos que no esta en la unidad por defecto. COMMAND.COM is not available -- se intento salir (QUIT TO) cuando COMMAND.COM no se halla en la unidad o directorio especificado con SET COMSPEC. Data item not found -- se intento reemplazar (REPLACE) un campo que no se encuentra en la estructura del fichero. Database in use is not indexed -- se intento buscar (FIND) en un fichero no indexado. Crear o abrir el fichero indice y hacer el intento otra vez. Directory is full -- el directorio del disco no puede contener mas archivos. Hay que borrar los archivos innecesarios e intentar otra vez. Disk is full -- ya no queda espacio en el disco. Puede darse tambien si el fichero creado tiene nombre no valido. End of file found unexpectedly -- uno o mas de los ficheros index en uso esta incompleto. REINDEXar el fichero y tratar otra vez. Puede pasar tambien que el fichero este corrupto. File already exists -- se intento renombrar (RENAME TO) un fichero ya existente. O se usa un nuevo nombre o se borra el fichero que causa el problema. File does not exist -- se intento usar un fichero que no existe, como por ejemplo APPEND FROM . Comprobar el directorio. File is currently open -- se intento abrir un fichero ya abierto. CANCEL cierra los ficheros de comando abiertos con MODI COMM y CLEAR hace los mismo con las bases de datos y ficheros indecados en uso. Format file cannot be opened -- se intento hacer SET FORMAT TO a un fichero que no existe (archivo de formato inexistente). Illegal data type -- se intento ordenar (SORT) un campo logico. Illegal goto value -- se especifico un valor para GOTO que no esta en el range de 1 a 65534. Illegal variable name -- se intento crear una variable con nombre no valido mediante STORE, SUM, COUNT o algun otro comando. Index does not match database -- dBASE no puede emparejar la clave indice con la base de datos. Tal vez usa otro fich. indice. Index file cannot be opened -- se intento un SET INDEX TO o USE pero el fich. indice elegido no existe. Join attempted to generate more that 65,534 records -- la clausula FOR fue usada para tratar de juntar demasiados registros a la vez. Keys are not the same length -- se intento actualizar de (UPDATE FROM) un fichero cuyo campo clave no es de la misma longt. que el de la base de datos en uso, deben ser identicas. Macro is not a character string -- las variables expandidas por un macro (&) deben ser de tipo caracter. DISPLAY MEMORY revela el tipo de variable. More than 5 fields to sum - se intento sumar (SUM) mas de cinco expresiones. Use multiples SUM para superar tal limitacion. More than 7 index files selected -- se intento un SET INDEX TO o USE para mas de 7 fich. indexados que es el maximo permitido. Nesting limit violation exceeded -- no se pueden tener mas de 16 fich. de comandss abiertos a la vez. No expression to sum -- se intento un SUM pero sin expresiones. No FOR phrase -- se intento un JOIN sin una clausula FOR. No FROM Phrase -- se intento un UPDATE sin una clausula FROM. No find -- un mensaje de diagnostico sale cuando dBASE no puede encontrar (FIND) una clave. El reg. # es puesto a 0. SET TALK OFF evita este mensaje. No help messages found -- se intento pedir ayuda (HELP) pero DBASEMSG.TXT no esta en el disco. Non-numeric expression -- se intento SUMar una expresion o campo de tipo caracter o logico. Not a dBASE II database -- se intento un USE a un fich. que no es una base de datos de dBASE II. ON phrase not found -- se intento un UPDATE o un INDEX sin una frase ON. Out of memory for memory variables -- un maximo de 1536 bytes esta disponible para las variables. Debido al modo como los buferes son mantenidos, este numeo puede variar y ser menor. Record length exceeds maximum size (of 1000) -- se intento crear (CREATE) un fich. con mas de 1000 caracteres por reg. Reduce el tama~o de algunos campos o crea una segunda base de datos con una clave comun. Record not in index -- se agregaron reg. al fich. sin evocar a su fich. indice. Solucion: reindexar. Record out of range -- se uso un num. de reg. mayor al que tiene el fich. mismo o uno de sus fich. indexados. Source and destination data types are different -- se intento un REPLACE a un campo con un valor que no es del mismo tipo. ** Syntax error *** -- un comando dBASE fue maltipeado. Syntax error in format specification -- @ SAY GET PICTURE ha sido usado inapropiadamente. Syntax error, re-enter -- se cometio un error al hacer un INPUT, ACCEPT o REPORT. TO phrase not found -- un comando que requiere de TO ha sido dado pero sin incluirlo. Usualmente pasa con STORE o SET. Too many characters -- se excedio el limite del bufer o de la linea de comandos. Too many files are open -- solo 16 fich. de todos los tipes (comando, archivo, index, formato, etc.) pueden ser abiertos a la vez. Too many memory variables -- se paso del maximo de 64 variables activas. Too many returns encountered -- Probablemente un error en la estructura de un fich. de comandos. Verifique cuantos RETURN hay y donde estan. Unassigned file number -- error internal. Contacte a Ashton-Tate si ocurre. Puede haber cambiado el disco sin cerrar ficheros. ** Unknown command -- dBASE II se topo con una orden que no forma parte de su vocabulario. Variable cannot be found -- se intento acceder a un campo que no existe. WITH phrase not found -- una frase WITH quedo fuera del comando REPLACE. ** Zero divide -- se intento dividir una exp. numerics por cero. (c)2022-23 zx_if1@hotmail.com