4D v13.4

ARRAY TO SELECTION

Inicio

 
4D v13.4
ARRAY TO SELECTION

ARRAY TO SELECTION 


 

ARRAY TO SELECTION {( array ; campo {; array2 ; campo2 ; ... ; arrayN ; campoN}{; *} )} 
Parámetro Tipo   Descripción
array  Array in Array a copiar en la selección
campo  Campo in Campo a recibir los valores del array
Operador in Esperar ejecución

El comando ARRAY TO SELECTION copia uno o más arrays en una selección de registros. Todos los campos listados deben pertenecer a la misma tabla.

Si una selección existe en el momento del llamado, los elementos del array se colocan en los registros, basados en el orden del array y en el orden de los registros. Si hay más elementos que registros, se crean nuevos registros. Los registros, bien sean nuevos o existentes, se guardan automáticamente.

Todos los arrays deben tener el mismo número de elementos. Si los arrays son de diferentes tamaños, se genera un error de sintaxis

Este comando efectúa la operación inversa de SELECTION TO ARRAY. Sin embargo, el comando ARRAY TO SELECTION no permite utilizar los campos de diferentes tablas, incluyendo tablas relacionadas, incluso cuando existe una relación automática.

Si pasa el parámetro *, 4D no ejecuta inmediatamente la línea de instrucción correspondiente pero la guarda en memoria; de esta forma puede apilar varias líneas que terminen en *. El conjunto de las líneas en espera es ejecutado por una instrucción ARRAY TO SELECTION final sin parámetro *. Por esta razón, ahora el comando puede llamarse sin parámetros.
Como para el comando QUERY, este principio permite romper una instrucción compleja en un conjunto de líneas, lo cual es más fácil de leer y mantener. También es posible insertar instrucciones intermediarias.

Advertencia: utilice ARRAY TO SELECTION con precaución, porque este comando reemplaza la información de los registros existentes. Si un registro está bloqueado por otro proceso durante la ejecución de ARRAY TO SELECTION, ese registro no se modifica. Todos los registros bloqueados se colocan en LockedSet. Después de la ejecución de ARRAY TO SELECTION, puede probar el conjunto LockedSet para ver si contiene registros bloqueados.

4D Server: el comando es optimizado por 4D Server. Los arrays son enviados por el equipo cliente al servidor, y los registros son modificados o creados en el equipo servidor. Como tal solicitud es manejada de modo sincrónico, el equipo cliente debe esperar a que la operación se complete con éxito. En los entornos multiusuario o multiproceso, ningún registro bloqueado será sobrescrito.

En el siguiente ejemplo, los arrays asApellidos y asEmpresas escriben datos en la tabla [Personas]. Los valores del array asApellidos se ubican en el campo [Personas]Apellido y los valores del array asEmpresas se ubican en el campo [Personas]Empresa:

 ARRAY TO SELECTION(asApellidos;[Personas]Apellido;asEmpresas;[Personas]Empresa)

Este ejemplo duplica una selección de registros:

 ARRAY TEXT(a1;0)
 ARRAY TEXT(a2;0)
 ARRAY TEXT(a3;0)
 ARRAY TEXT(a4;0)
 
 ALL RECORDS([Table_1])
 For($i;1;Get last field number(1))
    $p:=Get pointer("a"+String($i))
    SELECTION TO ARRAY(Field(1;$i)->;$p->;*)
  // Creación diferida de los arrays
 End for
 SELECTION TO ARRAY //Ejecución de las instrucciones
 
 REDUCE SELECTION([Table_1];0)
 For($i;1;Get last field number(1))
    $p:=Get pointer("a"+String($i))
    ARRAY TO SELECTION($p->;Field(1;$i)->;*)
  // Crear selección
 End for
 ARRAY TO SELECTION //Ejecución de las instrucciones

 
PROPIEDADES 

Producto: 4D
Tema: Arrays
Número 261

El comando cambia la selección actualComportamiento diferente en modo remoto

 
INDEX

Lista alfabética de los comandos

 
HISTORIA 

New
Modificado: 4D v11 SQL
Modificado: 4D v13

 
VER TAMBIÉN 

SELECTION TO ARRAY
Variables de sistema