4D v16Acessar ao motor SQL de 4D |
||
|
4D v16
Acessar ao motor SQL de 4D
Acessar ao motor SQL de 4D
O motor SQL integrado de 4D pode ser chamado de três formas diferentes:
QUERY BY SQL([OFFICES];"SALES > 100")
É possível fazer referencia a todo tipo de expressão 4D válida (variável, campo, array, expressão ...) dentro das cláusulas WHERE e INTO das expressões SQL. Para indicar uma referencia 4D, pode utilizar qualquer das seguintes notações:
Exemplos: C_STRING(80;vNome) ou: C_STRING(80;vNome) Notas:
Em modo compilado, pode utilizar referencias de variáveis locais (começando pelo caractere $) em instruções SQL sob certas condições:
A recuperação de dados em uma instrução SELECT será gerenciada dentro das etiquetas Begin SQL/End SQL sob a cláusula INTO do comando SELECT ou sob os comandos 4D do tema "SQL".
Begin SQL
SQL EXECUTE("SELECT ename FROM emp";[Empregados]Nome) A principal diferença entre estas duas maneiras de obter os dados de SQL (etiquetas Begin SQL/End SQL e comandos SQL) é que no primeiro caso toda a informação é enviada novamente a 4D em um só passo, enquanto no segundo caso, os registros deverão ser carregados de forma explícita utilizando o comando SQL LOAD RECORD. Por exemplo, supondo que na tabela PESSOAS há 100 registros:
ARRAY INTEGER(anoNascimento;0) Aqui temos que realizar 10 laços para recuperar os 100 registros. Se deseja carregar todos os registros em um só passo devemos utilizar: ARRAY INTEGER(anoNascimento;0) Nesta situação, depois da execução da instrução SELECT, o array anoNascimento contém 100 elementos e cada elemento armazena um ano de nascimento de todos os 100 registros.
C_STRING(40;vNome) Aqui temos que realizar 10 laços para recuperar todos os 100 registros. Cada passada pelo laço cria 10 registros na tabela [MINHATABELA] e cada valor Ano_Nascimento recuperado da tabela PESSOAS será salvado no campo Ano_Nascimento. C_STRING(40;vNome) Neste caso, durante a execução da instrução SELECT, serão criados 100 registros na tabela [MINHATABELA] e cada campo Ano_Nascimento conterá os dados correspondentes da tabela PESSOAS, coluna Birth_Year.. 4D inclui um funcionamento automático específico (palavra chave LISTBOX) que permite colocar os dados das consultas SELECT em um list box. Para maior informação, consulte o Manual de Desenho. Por razões de otimização, é preferível utilizar expressões 4D em lugar de funções SQL nas consultas. As expressões 4D serão calculadas uma vez antes da execução da consulta enquanto as funções SQL serão avaliadas para cada registro encontrado. Por exemplo, com a seguinte instrução: SQL EXECUTE("SELECT nomeCompleto FROM PEOPLE WHERE nomeCompleto=<<vSobrenome+vNome>>") ... a expressão vSobrenome+vNome é calculada uma vez, antes da execução da consulta. Com a seguinte instrução: SQL EXECUTE("SELECT nomeCompleto FROM PEOPLE WHERE nomeCompleto=CONCAT(<<vSobrenome>>,<<vNome>>)") ... a função CONCAT(<<vSobrenome>>,<<vNome>>) é chamada para cada registro da tabela, ou seja, a expressão é avaliada para cada registro.
Ver também
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
ARTICLE USAGE
Manual de SQL ( 4D v16) |