Pág. 6/11: En el ejemplo, donde comienza el programa principal —MAIN—, debe poner MAIN BEGIN.
Pág. 6/20: Cuando se desea recoger los valores de una SELECT en un CURSOR debe especificarse "ON nombre_de_frame", y no "ON FRAME nombre_de_frame".
DECLARE CURSOR cur_id FOR
SELECT select_list BY NAME [ON nombre_de_frame]
declare cursor cur_1 for select * by name on fr1 from marcas
Pág. 2/8: Donde dice:
["text"] [help_number] [CLEAR]
debe decir:
["text"] HELP [help_number] [CLEAN]
Pág. 2/25:
| Sentencias | Opción del menú |
| ADD | Agregar |
| REMOVE | Borrar |
| MODIFY | Modificar |
| QUERY | Encontrar |
| INTERCALATE | Insertar |
| OUTPUT | Salida |
| —— | Tabla |
Pág. 3/15:
| CLEAR FRAME BOX | Borra una caja estándar. |
| CLEAR FRAME | Borra un FRAME activo en pantalla. |
| CLEAR FROM | Borra elementos activos de la lista de display. |
Pág. 3/16:
| DISPLAY FRAME BOX | Dibuja una caja estándar. |
| DISPLAY FRAME | Dibuja un FRAME en pantalla. |
Pág. 3/27: Donde dice:
if actionlabel(lastkey) = "quit" then
debe decir:
if actionlabel(lastkey) = "fquit" then
Pág. 3/29: Instrucción CANCEL: Esta instrucción interrumpe la edición del FORM o FRAME, .....
Pág. 3/32: Donde dice:
display frame box at 5,6 with 10,68
label "Título Caja"
view
clear box at 5,6
Debe decir:
display box at 5,6 with 10,68
view
clear box at 5,6
Pág. 3/33: Ejemplo de CLEAR FORM:
...
get query
while actionlabel(lastkey) <> "fquit"
read key through form
clear form
...
Pág. 3/34: Falta la instrucción CLEAR FRAME BOX. Esta instrucción borra una caja estándar. Su sintaxis es:
CLEAR FRAME BOX AT line,column
Donde:
line,column: Expresiones que devuelven un valor de línea o columna de display.
Ejemplo de instrucción CLEAR FRAME BOX:
...
display frame box at 1,1 with 10,78 label "Titulo de la Caja"
view
...
...
clear frame box at 1,1
...
Instrucciones relacionadas: DISPLAY FRAME BOX
Pág. 3/66: En instrucciones relacionadas hay que sustituir:
CLEAR BOX, CLEAR LIST
por:
CLEAR AT, CLEAR FRAME BOX, CLEAR LIST
Pág. 3/67: El ejemplo que se expone debe modificarse como sigue:
......
for i = 1 to 10
display line at i,40 - i with i
view
.....
Pág. 3/76: El ejemplo que se expone no es válido, ya que no se puede hacer un EXECUTE sobre una instrucción SELECT:
Un ejemplo válido sería:
let condicion = "cliente =
?"
prepare inst_1 from "update clientes set direccion1 = ?
where " && condicion
...
prompt for cod_cli
as line label "Código del cliente a actualizar:"
at 5,5
end prompt
execute inst_1 using direc,cod_cli
Pág. 3/85: Modificaciones en el ejemplo:
...
while locked = true begin
if yes("Albarán en uso; facturar el siguiente","N")
=
true then begin
let sw = 1
break
end
end
if sw = 1 then continue
...
Pág. 3/87: Sintaxis de la instrucción FORMAT STREAM:
FORMAT [STREAM {identifier
| STANDARD}] [SIZE size]
[MARGINS margin_list] [format_block_list] END
FORMAT
Donde:
STANDARD: Entrada/Salida del STREAM por defecto.
Pág. 3/88: En instrucciones relacionadas cambiar:
CLOSE STREAM por STOP STREAM
OUTPUT STREAM por START OUTPUT STREAM
Pág. 3/107: La sintaxis de la instrucción MENU es la siguiente:
MENU {FORM | FRAME identifier
| identifier}
[DISABLE option_list] [AT line,column]
Pág. 3/112: Instrucciones relacionadas: CURFIELD y NEWVALUE (variables CTL)
Pág. 3/117: En la expresión "PRINTER expression" es falsa la asignación a RPRINTER del valor de "expression".
PRINTER expression: Para indicar el tipo de impresora a utilizar.
Pág. 3/120: Donde:
variable_name: Variable del programa definida en la sección DEFINE.
Pág. 3/125: Ejemplo de la instrucción PREVIOUS ROW:
...
while currec > 1 previous row
...
Pág. 3/131: En el ejemplo 1, cuando se cierra el STREAM, la instrucción que se tiene que usar es STOP (CLOSE no es aplicable a STREAM):
put stream auxiliar "———— Comienzo",
skip
...
...
stop output stream auxiliar
...
En instrucciones relacionadas hay que sustituir CLOSE por STOP.
Pág. 3/132: En el ejemplo:
....
put stream out every row of cur1
....
El "open cur1" no es necesario.
Pág. 3/135: Faltan los siguientes caracteres:
>> Selecciona
ordenando de mayor a menor.
<< Selecciona ordenando de
menor a mayor.
| Operador lógico
OR. Ej. 1|7|9 seleccionará las filas con dichos códigos si
es que existen en la tabla que estamos manteniendo.
Pág. 3/163: Ejemplo:
....
start input stream pwd through "pwd" no echo
prompt stream pwd for curdir end prompt
stop input stream pwd
....
Pág. 3/169: En la sintaxis de TREE WALK, "suffix" puede ser una expresión.
Pág. 3/169: Donde:
variable_name: Variable del programa definida en la sección DEFINE.
Pág. 3/170: Sintaxis de la instrucción TSQL:
TSQL [FILE]
expression [[TO | THROUGH]
output
[APPEND]
[lines LINES]
[LABEL {q_string | number}] [AT line,column]]
[LOG]
Pág. 3/183: La cláusula BY COLUMNS es obligatoria en el segundo procedimiento de la instrucción WINDOW si se utiliza la cláusula SET.
Pág. 3/184: En el tercer procedimiento de la instrucción WINDOW no se puede especificar la cláusula FROM si se usa BY COLUMNS.
Pág. 3/185: En el segundo ejemplo, sustituir:
window from cur
por
window from cursor cur
Pág. 4/10: Órdenes de posicionamiento y visualización. Sustituir:
"o, <fopen>"
por
"o nombre_fichero, <fopen>"
NOTA: Además de los errores aquí reflejados, se han corregido otros que que no tienen una implicación directa en el lenguage, pero que podían producir el que un programa abortara su ejecución.