CREATE BUFFER

Crea un objeto buffer dinámico.
Sintaxis

CREATE BUFFER handle FOR TABLE { table-name | table-handle | buffer-handle}
  [ BUFFER-NAME buffer-name ]
  [ IN WIDGET-POOL widget-pool-name ]

handle

Una variable de tipo HANDLE que representa el identificador del objeto de búfer.

FOR TABLE table-name|table-handle|buffer-handle

Una expresión de caracteres (table-name) que se evalúa como un nombre de tabla de base de datos único o un nombre de tabla temporal estática, un controlador de tabla temporal (table-handle) o un controlador de objeto de búfer existente (buffer-handle), cada uno de los cuales puede especificar el origen de registro para el que se crea el objeto de búfer.
Si el nombre de la tabla es ambiguo o existe, debe calificar el nombre de la tabla de la base de datos con un nombre de la base de datos o cambiar el nombre de la tabla temporal. De lo contrario, si la tabla de base de datos existe en varias bases de datos conectadas, el AVM crea el búfer en la primera base de datos conectada.

BUFFER-NAME buffer-name

Una expresión de tipo CHARACTER que evalúa, en tiempo de ejecución, el nombre del búfer dinámico que está creando. Esta opción permite que una consulta dinámica tenga múltiples buffers para la misma tabla.
IN WIDGET-POOL widget-pool-name
Una expresión de tipo CHARACTER que evalúa, en tiempo de ejecución, el nombre del grupo de widgets que contiene el búfer dinámico.
Nota: los nombres de grupos de widgets no distinguen entre mayúsculas y minúsculas.

DEFINE VARIABLE ix AS INTEGER NO-UNDO.
DEFINE VARIABLE qh AS HANDLE  NO-UNDO.
DEFINE VARIABLE bh AS HANDLE  NO-UNDO.
DEFINE VARIABLE fh AS HANDLE  NO-UNDO EXTENT 10.

CREATE BUFFER bh FOR TABLE «Customer».
CREATE QUERY qh.

qh:SET-BUFFERS(bh).
qh:QUERY-PREPARE(«FOR EACH Customer»).
qh:QUERY-OPEN().
qh:GET-FIRST().

DISPLAY bh:NAME.

REPEAT ix = 1 TO 10:
  fh[ix] = bh:BUFFER-FIELD(ix).
  DISPLAY fh[ix]:NAME STRING(fh[ix]:BUFFER-VALUE).
END.

qh:QUERY-CLOSE().
bh:BUFFER-RELEASE().
DELETE OBJECT bh.
DELETE OBJECT qh.