É possível por diretamente o resultado de uma petição SQL em um list box de tipo array. Esta função oferece um meio rápido de visualizar o resultado de petições SQL. Só podem ser utilizadas as petições de tipo SELECT. Este mecanismo não pode ser utilizado com uma base SQL externa.
Isso funciona de acordo com os seguintes princípios:
- Crie o list box que receberá os resultados da petição. A fonte de dados do lsit box deve ser Arrays.
- Execute a petição SQL de tipo SELECT e atribua o resultado à variável associada ao list box. É possível utilizar as palavras chaves Begin SQL/End SQL (ver o manual de Linguagem 4D).
- Quando o conteúdo de um list box provém de uma petição SQL, as colunas não podem ser ordenadas ou modificadas pelo usuário.
- Cada nova execução de uma petição SELECT com o list box a reiniciação das colunas (não é possível preencher o mesmo list box progressivamente utilizando várias petições SELECT).
- Recomenda-se dar ao list box o mesmo número de colunas que as que terá no resultado de petição SQL. Se o número de colunas do list box é inferior ao necessário para a petição SELECT, as colunas são adicionadas automaticamente. Se o número de colunas do list box é superior ao necessário para a petição SELECT,as colunas desnecessárias são ocultas.
Nota: As colunas adicionadas automaticamente estão relacionadas com as de tipo array. Esses arrays temporários permanecem enquanto o formulário existir. Uma variável temporária é criada do mesmo modo para cada título. Quando se chama o comando LISTBOX GET ARRAYS, o parâmetro arrVarCols contém ponteiros (apontadores) aos arrays temporários e o parâmetro arrVarTitulos contém os ponteiros às variáveis de títulos temporários. Se uma coluna adicionada é, por exemplo, a quinta coluna, seu nome é sql_column5 e seu título é sql_header5.
- Em modo interpretado, os arrays existentes utilizados pelo list box podem ser redigitados automaticamente de acordo com os dados enviados pela petição SQL.
ExemploQueremos recuperar todos os campos da tabela PESSOAS e localizar seu conteúdo no list box cujo nome de variável é vlistbox. No método de objeto de um botão (por exemplo), é suficiente escrever:
Begin SQL
SELECT * FROM PEOPLE INTO <<vlistbox>>
End SQL