SELECTION RANGE TO ARRAY

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 3.5.3


SELECTION RANGE TO ARRAY (inicio; fin; campo | tabla; Array{; campo2 | tabla2; Array2; ...; campoN | tablaN; ArrayN})

ParámetroTipoDescripción
inicioNuméricoNúmero de registro seleccionado a partir del cual
comenzar la recuperación de datos
finNuméricoNúmero de registro seleccionado donde termina la
recuperación de datos
campo | tablaCampo o TablaCampo a utilizar para recuperar los datos o
Tabla a utilizar para recuperar los números de registro
ArrayArrayArray para recibir los datos o números de registros de
los campos

Descripción

SELECTION RANGE TO ARRAY crea uno o más arrays y copia los datos de los campos o números de registro de la selección actual en arrays.

A diferencia de SELECTION TO ARRAY, que aplica a la totalidad de la selección actual, SELECTION RANGE TO ARRAY sólo aplica al rango de los registros seleccionados especificados por los parámetros inicio y fin.

El comando espera que los números de registro seleccionados pasados en inicio y fin cumplan con la fórmula 1 <= inicio <= fin <= Records in selection ([...]).

Si pasa 1 <= inicio = fin < Records in selection ([...]), se cargarán los campos u obtendrá el número de registro del registro cuyo registro seleccionado es inicio = fin.

Si pasa números de registros seleccionados incorrectos, el comando hace lo siguiente:

Si fin > Records in selection ([...]), devuelve los valores a partir del registro seleccionado especificado por inicio hasta el último registro seleccionado.

Si inicio > fin, devuelve los valores del registro cuyo registro seleccionado es inicio únicamente.

Si ambos parámetros son inconsistentes con el tamaño de la selección, devuelve arrays vacíos.

Como SELECTION TO ARRAY, el comando SELECTION RANGE TO ARRAY aplica a la selección de la tabla especificada en el primer parámetro.

Al igual que SELECTION TO ARRAY, SELECTION RANGE TO ARRAY también puede realizar las siguientes operaciones:

Cargar los valores de uno o varios campos.

Cargar los números de registros utilizando la sintaxis ...;[tabla];Array;...

Cargar valores de campos relacionados, si existe una relación automática Muchos a Uno entre las tablas o si usted previamente ha llamado SET AUTOMATIC RELATIONS para cambiar las relaciones Muchos a Uno manuales a automáticas. En ambos casos, los valores pueden cargarse a través de varios niveles de relaciones Muchos a Uno entre tablas.

Cada array se digita de acuerdo al tipo de campo. Hay dos excepciones:

En modo compatibilidad ASCII (no Unicode), si un campo de tipo Texto se copia en un array Alfa, el array seguirá siendo de tipo Alfa.

La copia de un campo de tipo Hora provocará la creación de un array Entero largo.

Si carga los números de registro, se copian en un array de tipo Entero largo.

4D Server: SELECTION RANGE TO ARRAY es optimizado por 4D Server. Cada array se crea en el servidor y luego se envía, en su totalidad, al equipo cliente.

Advertencia: SELECTION RANGE TO ARRAY puede crear arrays grandes, dependiendo del rango definido en inicio y fin, y en el tipo y tamaño de los datos a cargar. Los arrays residen en memoria, de manera que es buena idea probar el resultado después de la ejecución del comando. Para hacerlo, pruebe el tamaño de cada array resultante o cubra la llamada al comando, utilizando un método de proyecto ON ERR CALL.

Si el comando se ejecuta correctamente, el tamaño de cada array resultante es igual a (fin-inicio)+1, excepto si el parámetro fin es superior al número de registros en la selección. En tal caso, cada array resultante contiene (Registros en selección([...])-inicio)+1 elementos.

Ejemplos

1. La siguiente línea de código utiliza los 50 primeros registros de la selección actual de la tabla [Facturas]. Se cargan los valores del campo [Facturas]Facturas ID y del campo relacionado [Clientes]Clientes ID.

   SELECTION RANGE TO ARRAY(1;50;[Facturas]Facturas ID;alInvoID;[Clientes]Clientes ID;alCustID)

2. Las siguientes líneas de código utilizan los 50 primeros registros de la selección actual de la tabla [Facturas]. Se cargan los números de registro de la tabla [Facturas] así como los de la tabla asociada [Clientes]:

   lSelTalla:= Records in selection ([Facturas])
   SELECTION RANGE TO ARRAY (lSelTalla-49;lSelTalla;[Facturas];alFacRegN;[Facturas];alCliRegN)

3. Las siguiente líneas de código permiten trabajar secuencialmente en porciones de 1 000 registros de una selección grande que no puede descargase en su totalidad en arrays:

   lMaxPag := 1000
   lSelTalla:= Records in selection ([Directorio Telefonico])
   For ($lPage ; 1; 1+((lSelTalla-1)\lMaxPag ) )
         ` Cargar los valores y/o los números de registros
      SELECTION RANGE TO ARRAY (1+(lMaxPag *($lPag-1));lMaxPag *$lPag;...;...;...;...;...;...)
         ` Hacer algo con los arrays
   End for

Ver también

ON ERR CALL, SELECTION TO ARRAY, SET AUTOMATIC RELATIONS.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente