[firebase-br] RES: select dinamico
Moacir
moacir em blusistemas.com.br
Qua Mar 17 08:40:31 -03 2010
Eu faço assim:
VSQL é uma varchar gigante.
VSQL = 'SELECT Campos
From Tabela '
WHERE 1=1 ';
If VSETOR <> '' then
VSQL = VSQL || 'AND SETOR = ' || :VSETOR;
If VGRUPO <> '' then
VSQL = VSQL || 'AND GRUPO = ' || :VGRUPO;
FOR EXECUTE STATEMENT VSQL
INTO VARIAVEIS
DO
BEGIN
END
O WHERE 1=1 EU FACO PRA NÃO PRECISAR FICAR TESTANDO SE JÁ TEM OU NÃO O WHERE
NA STRING.
Espero ter ajudado.
Moacir.
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Augusto junior
Enviada em: quarta-feira, 17 de março de 2010 08:16
Para: FireBase
Assunto: Re: [firebase-br] select dinamico
var i:string;
slq:string;
begin
i:='';
if setor<>nil then
begin
sql:='setor = :grupo ';
I:=' and ';
end;
if grupo<>nil then
if i='' then
begin
sql:='grupo= :grupo';
i:=' and ';
end
else
sql:=sql+ i +' grupo= :grupo ';
if marca<>nil then sql:=sql+ i +' marca= :marca ';
acho que é isso.
Guto
Em 16 de março de 2010 15:55, Denilson
<denilson em compuserviceonline.com.br> escreveu:
> No delphi tenho um select dinamico onde tenho alguns testes
>
> so q ficou lento preciso fazer em uma procedure
>
>
>
> no delphi eu informo
> codigo do setor,
> codigo do grupo,
> codigo da marca
> ...
>
>
> se os campos estiverm em branco pego geral
>
> ex:select * from produtos
>
> mas se algum campo estiver prenchido
>
> se o grupo estiver preenchido:
> ex: select * from produtos where grupo=:grupo
>
> se o grupo e o setor estiver preenchido
>
> ex: select * from produtos where grupo=:grupo and setor=:setor
>
>
> como faco pra fazer em uma procedure nao sei como fazer?
>
>
>
>
>
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista