Duvida como usar ParamByName para esse tipo d parametro
29/11/2004
0
select SAIDA.CODLOJA, SAIDA.DATAHORA, SAIDA.TIPO SAIDA.VALOR from SAIDA where SAIDA.CODLOJA in (1,2,3,4)
Observando a parte criterios eu gostaria de saber como passa esse argumentos com ParamByName, Conforme Exemplo abaixo :
select SAIDA.CODLOJA, SAIDA.DATAHORA, SAIDA.TIPO SAIDA.VALOR from SAIDA where SAIDA.CODLOJA in :CodigoLojas
e no delphi :
ibquery.ParamByName(´CodigoLojas´).Valeu := ´(1,2,3,4)´;
ibquery.Open;
Vamos enteder... eu tenho q passar uma linha com varios codigos q serviram para fazer o filtro na clasula where.. porem como passar ele pelo delphi ? comforme a linha em pascal acima... ou isso nao é possivel ? realmente eu tenho q modificar a String do SQL. e nao posso utilizar a mesma parametrizada.... ´Estou usando IBX... e por ventura essa limitação existe na DBX tb ?´
grato... :shock:[/b][color=darkred:680808df22][/color:680808df22][color=darkred:680808df22][/color:680808df22]
Kristian
Curtir tópico
+ 0
Responder
Posts
29/11/2004
Fsflorencio
Amigo,
Não conheço nenhuma forma de se fazer isto, mas se for o caso, vc pode fazer assim:
select SAIDA.CODLOJA,
SAIDA.DATAHORA,
SAIDA.TIPO
SAIDA.VALOR
from SAIDA
where SAIDA.CODLOJA in (SELECT COD_LOJA FROM LOJAS WHERE ...)
se não for o caso, vc tem que passar o script completo com os valores igual mencionado separado por virgulas sem parâmetros.
Não conheço nenhuma forma de se fazer isto, mas se for o caso, vc pode fazer assim:
select SAIDA.CODLOJA,
SAIDA.DATAHORA,
SAIDA.TIPO
SAIDA.VALOR
from SAIDA
where SAIDA.CODLOJA in (SELECT COD_LOJA FROM LOJAS WHERE ...)
se não for o caso, vc tem que passar o script completo com os valores igual mencionado separado por virgulas sem parâmetros.
Responder
30/11/2004
Rodolpho123
ibquery.ParamByName(´CodigoLojas´).Valeu := ´(1,2,3,4)´;
ibquery.Open;
Vamos enteder... eu tenho q passar uma linha com varios codigos q serviram para fazer o filtro na clasula where.. porem como passar ele pelo delphi ? comforme a linha em pascal acima... ou isso nao é possivel ?
grato... :shock:[/b][color=darkred:a66de28669][/color:a66de28669][color=darkred:a66de28669][/color:a66de28669]
Isso é possível sim, mas se a sua string de parâmetros for muito grande, vai lhe gerar uma exceção. Ex:
Suporta
ibquery.ParamByName(´CodigoLojas´).Valeu := ´(1,2,3,4)´;
Não suporta
ibquery.ParamByName(´CodigoLojas´).Valeu := ´(1,2,3,4,5,6,7,8,...200)´;
Mas se vc subescrever sua qry, a mesma vai rodar perfeitamente, ex:
ibquery.SQL.Strings[5] := ´where SAIDA.CODLOJA in (1,2,3,4,5,6,7,8,...200)´;
Onde ´5´ se refere ao índice da linha que vc está subescrevendo
Responder
Clique aqui para fazer login e interagir na Comunidade :)