Mudanças entre as edições de "Função @EXPRESSAODB"
(→Sintaxe) |
|||
Linha 1: | Linha 1: | ||
− | A função @EXPRESSAODB | + | A função @EXPRESSAODB permite a execução dinâmica de expressões SQL dentro de uma consulta. Ela é útil quando se deseja construir trechos de SQL de forma parametrizada ou condicional, melhorando a flexibilidade das consultas. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==='''Sintaxe'''=== | ==='''Sintaxe'''=== | ||
@EXPRESSAODB("AS SELECAO",[1,4]) | @EXPRESSAODB("AS SELECAO",[1,4]) | ||
+ | |||
+ | ==='''Parâmetros'''=== | ||
+ | |||
+ | {| class="wikitable" style="width: 100%" | ||
+ | ! Nome | ||
+ | !Banco | ||
+ | !Descrição | ||
+ | |- | ||
+ | |@EXPRESSAODB | ||
+ | |PostgreSQL | ||
+ | |EXECUTE | ||
+ | |- | ||
+ | |- | ||
+ | |@EXPRESSAODB | ||
+ | |Oracle | ||
+ | |EXECUTE IMMEDIATE | ||
+ | |- | ||
+ | |@EXPRESSAODB | ||
+ | |FireBird | ||
+ | |EXECUTE STATEMENT | ||
+ | |- | ||
+ | |@EXPRESSAODB | ||
+ | |SQLServer | ||
+ | |EXEC sp_executesql | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==='''Exemplos'''=== | ||
+ | |||
+ | procedure ConsultaDinamica; | ||
+ | var | ||
+ | Q: TPHQuery; | ||
+ | begin | ||
+ | try | ||
+ | Q := NewPHQuery; | ||
+ | Q.Add('SELECT * FROM CLIENTES ' + | ||
+ | 'WHERE @EXPRESSAODB(''NOME LIKE ''''A%'''' '')'); | ||
+ | finally | ||
+ | Q.Free; | ||
+ | end; | ||
+ | end; | ||
+ | begin | ||
+ | ConsultaDinamica; | ||
+ | end. |
Edição das 14h54min de 25 de fevereiro de 2025
A função @EXPRESSAODB permite a execução dinâmica de expressões SQL dentro de uma consulta. Ela é útil quando se deseja construir trechos de SQL de forma parametrizada ou condicional, melhorando a flexibilidade das consultas.
Sintaxe
@EXPRESSAODB("AS SELECAO",[1,4])
Parâmetros
Nome | Banco | Descrição |
---|---|---|
@EXPRESSAODB | PostgreSQL | EXECUTE |
@EXPRESSAODB | Oracle | EXECUTE IMMEDIATE |
@EXPRESSAODB | FireBird | EXECUTE STATEMENT |
@EXPRESSAODB | SQLServer | EXEC sp_executesql |
Exemplos
procedure ConsultaDinamica; var Q: TPHQuery; begin try Q := NewPHQuery; Q.Add('SELECT * FROM CLIENTES ' + 'WHERE @EXPRESSAODB(NOME LIKE 'A%' )'); finally Q.Free; end; end; begin ConsultaDinamica; end.