Fórum Consulta SQL - Parâmetros composto #286476
29/06/2005
0
Var
VListaCodigos : String;
//assim funciona. lista o produto de código 51
begin
VListaCodigos := ´51´;
SQLDataSet1.Close;
ClientDataSet1.Close;
SQLDataSet1.CommandText := ´SELECT * FROM PRODUTOS WHERE CODIGO IN (:VCodigos)´;
SQLDataSet1.Params[0].Value := VListaCodigos;
ClientDataSet1.Open;
end;
//assim funciona. lista o produto de código 59
begin
VListaCodigos := ´59´;
SQLDataSet1.Close;
ClientDataSet1.Close;
SQLDataSet1.CommandText := ´SELECT * FROM PRODUTOS WHERE CODIGO IN (:VCodigos)´;
SQLDataSet1.Params[0].Value := VListaCodigos;
ClientDataSet1.Open;
end;
//mas assim funciona. Se tiver mais de um codigo na lista, nao mostra nada.
begin
VListaCodigos := ´51,59´´;
SQLDataSet1.Close;
ClientDataSet1.Close;
SQLDataSet1.CommandText := ´SELECT * FROM PRODUTOS WHERE CODIGO IN (:VCodigos)´;
SQLDataSet1.Params[0].Value := VListaCodigos;
ClientDataSet1.Open;
end;
O que estou fazendo de errado? Delphi 7 Firebird 1.5
Obrigado.
Valdirdill
Curtir tópico
+ 0Posts
29/06/2005
Sandra
Acredito que a SQL está procurando pelo valor 51,59.
Gostei + 0
29/06/2005
Valdirdill
Mas como eu poderia passar esse parâmetro composto para a Query, ou seja, como dois ou mais valores para buscar?
Gostei + 0
29/06/2005
Sandra
Gostei + 0
29/06/2005
Valdirdill
Esses códigos - 51 e 59 - são só um exemplo hipotético. É o usuário que vai informar o(s) código(s) do produto. Poder ser um, dois , dez,...
Preciso listar todos os produtos que tenham código igual aos códigos informados pelo usuário.
Entendeu?
Gostei + 0
29/06/2005
Sandra
Outra coisa, vai exibir no ClienteDataSet, certo?
Agora, como implementar, deixe-me pensar como faria num caso desses (não prometo conseguir). Ou então, aguardar que um outro colega do fórum também possa auxiliar na busca por uma solução.
Gostei + 0
29/06/2005
Emerson Nascimento
será necessário concatenar a instrução. algo como:
VListaCodigos := QuotedStr(´51´)+´,´+QuotedStr(´59´);
ClientDataSet1.Close;
ClientDataSet1.CommandText := ´SELECT * FROM PRODUTOS WHERE CODIGO IN (´+VListaCodigos+´)´;
ClientDataSet1.Open;
Gostei + 0
29/06/2005
Emerson Nascimento
porque você manipula o SQLDataSet1 e o ClientDataSet1? bastaria manipular o ClientDataset1.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)