Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
SELECTION TO ARRAY
|
SELECTION TO ARRAY {( umCampo | umaTabela ; array {; campo ; array {; campo2 ; array2 ; ... ; campoN ; arrayN}}{; *})} | ||||||||
Parâmetro | Tipo | Descrição | ||||||
umCampo | umaTabela | Campo, Tabela |
![]() |
Campo usado para pedir dados ou Tabela usada para pedir números de registros | |||||
array | Array |
![]() |
Array para receber dados do campo ou número de registros | |||||
campo | Campo |
![]() |
Campo a ser requisitado no array | |||||
array | Array |
![]() |
Array a receber os dados do campo | |||||
* | Operador |
![]() |
Aguarde execução | |||||
O comando SELECTION TO ARRAY cria um ou mais arrays e copia os dados nos campos ou números de registros da seleção atual para os arrays.
O comando SELECTION TO ARRAY aplica-se à seleção para a tabela designada pelo primeiro parâmetro (nome da tabela ou campo). SELECTION TO ARRAY, pode executar o seguinte:
Cada array é digitado de acordo com o tipo de campo. Há duas exceções:
Quando aplica SELECTION TO ARRAY a um campo de tipo Hora, é importante notar que só cria um array de tipo Hora se o array não foi definido como de outro tipo. Por exemplo, no seguinte contexto, o array myArray permanece como um array de tipo Inteiro longo: ARRAY LONGINT(myArray;0)
SELECTION TO ARRAY([myTable]myTimeField;myArray)
Se você carregar um número de registros, eles são copiados para um array Inteiro longo.
Quando você passar o parâmetro *, 4D não executar a linha de instrução correspondente imediatamente, mas sim armazena na memória, desta forma você pode empilhar várias linhas terminando com um *. Todas essas linhas que aguarda sua execução são executadas por uma instrução final SELECTION TO ARRAY que não tem o parâmetro *. Por esta razão, o comando agora pode ser chamado sem parâmetros. Neste caso, os tipos de arrays são verificados quando a linha final (sem o parâmetro *).
Como com o comando QUERY, este princípio permite quebrar uma instrução complexa em um conjunto de linhas, que é mais fácil de ler e manter. Você também pode inserir instruções intermediárias ou construir uma matriz dentro de um loop (ver exemplo 2 do comando ARRAY TO SELECTION).
4D Server: O comando SELECTION TO ARRAY é otimizado para 4D Server. Cada array é criado no servidor e, em seguida, enviado, na sua totalidade, para a máquina cliente.
Advertência: O comando SELECTION TO ARRAY pode criar arrays grandes, dependendo do tamanho da seleção atual e sobre o tipo e o tamanho dos dados que você está carregando. Arrays residem na memória, então é uma boa idéia testar o resultado depois que o comando seja concluído. Para fazer isso, teste o tamanho de cada array resultante ou cubra a chamada para o comando, utilizando um método de projeto ON ERR CALL.
Nota: Depois de uma chamada a SELECTION TO ARRAY, a seleção atual e registro atual permanecem o mesmo, mas o registro atual não é mais carregado. Se você precisar usar os valores dos campos no registro atual, use o comando LOAD RECORD após o comando SELECTION TO ARRAY.
No exemplo a seguir, a tabela [Pessoas] tem uma relação automática com a tabela [Empresa]. Os dois arrays asSobrenome e asEmpresaDir são dimensionados de acordo com o número de registros selecionados na tabela [Pessoas] e conterá a informação de ambas as tabelas:
SELECTION TO ARRAY([Pessoas]Sobrenome;asSobrenome;[Empresa]Endereço;asEmpresaDir)
O exemplo a seguir retorna o números de registro da tabela [Clientes] no array alNumerosRegistros e os valores nos campos [Clientes]Nomes no array asNomes
SELECTION TO ARRAY([Clientes];alNumerosRegistros;[Clientes]Nomes;asNomes)
O mesmo exemplo pode ser escrito:
SELECTION TO ARRAY([Clientes];alNumerosRegistros;*)
SELECTION TO ARRAY([Clientes]Nomes;asNomes;*)
SELECTION TO ARRAY
ARRAY TO SELECTION
CREATE SELECTION FROM ARRAY
MULTI SORT ARRAY
ON ERR CALL
SELECTION RANGE TO ARRAY
SET AUTOMATIC RELATIONS
Produto: 4D
Tema: Arrays
Número
260
Criado por: < 4D v6
Modificado: 4D v13
Manual de linguagem 4D ( 4D v20 R7)