Alterar WHERE em tempo de execução
Através do delphi eu preciso informar para stored procedure qual vai ser o tipo do filtro na consulta, do lado do delphi OK mas do lado do Firebird eu não sei como fazer para alterar o Where do Select em tempo de execução, por exemplo:
Condicao = ´CAMPO = 1´
ou
Condicao = ´CAMPO LIKE ´NOME´´
SELECT * FROM WHERE Condicao
Obrigado
Condicao = ´CAMPO = 1´
ou
Condicao = ´CAMPO LIKE ´NOME´´
SELECT * FROM WHERE Condicao
Obrigado
Silviomorelo
Curtidas 0
Respostas
Knight_of_wine
14/09/2009
Eu trabalho com SQLServer, mas eu preencho a propriedade SQL no caso do SQLQuery assim:
Aí na hora que preciso fazer o if faço assim.
A linha começa a contar apartir do 0.
Espero que isso te ajude.
SELECT * FROM CLIENTES WHERE CD_CLIENTE = 0 --LINHA ALTERADA DINAMICAMENTE
Aí na hora que preciso fazer o if faço assim.
if(tipoCliente = 1) then Qry.SQL[1] := WHERE CD_CLIENTE = 1 else Qry.SQL[1] := WHERE CD_CLIENTE = 2;
A linha começa a contar apartir do 0.
Espero que isso te ajude.
GOSTEI 0
Silviomorelo
14/09/2009
Obrigado, pela resposta.
Mas essas alterações servem tambem para stored procedure do firebird?
Mas essas alterações servem tambem para stored procedure do firebird?
GOSTEI 0
Emerson Nascimento
14/09/2009
utilize o comando [b:4bf43c45f6]execute statement[/b:4bf43c45f6]
instrucao = ´SELECT * FROM TABELA WHERE CODIGO = ´ || cast(:ncod as varchar(10))
for excecute statement instrucao
instrucao = ´SELECT * FROM TABELA WHERE CODIGO = ´ || cast(:ncod as varchar(10))
for excecute statement instrucao
GOSTEI 0