DUVIDA EM sql IN
select * from TAB_CLIE
WHERE
CODCLIE in (:para)
estou jogando no dellphi
ClientDataSet1.close;
ClientDataSet1.Params[0].AsString:= ''''''''1,4'''''''' ;
ClientDataSet1.open;
alguem ja fez usando parâmetro para dar certo ?
WHERE
CODCLIE in (:para)
estou jogando no dellphi
ClientDataSet1.close;
ClientDataSet1.Params[0].AsString:= ''''''''1,4'''''''' ;
ClientDataSet1.open;
alguem ja fez usando parâmetro para dar certo ?
Marcos Cruz
Curtidas 0
Melhor post
Fernando Duwe
24/07/2018
Oi Marcos,
Não deveria haver problema para executar o seu código. Verifique primeiro se fixando os valores no SQL, a sua consulta retorna resultado.
Somente, ao passar o parâmetro, pode passar com as aspas simples mesmo.
Não deveria haver problema para executar o seu código. Verifique primeiro se fixando os valores no SQL, a sua consulta retorna resultado.
Somente, ao passar o parâmetro, pode passar com as aspas simples mesmo.
ClientDataSet1.Params[0].AsString:= '1,4';
GOSTEI 2
Mais Respostas
Marcos Cruz
23/07/2018
foi com aspa simples e que nao hora de salvar aqui oclocou assim
mas da erro de conversao .. o sql entende que é integer so que no paramentro do cliendaset eu coloquie que é string
mas da erro de conversao .. o sql entende que é integer so que no paramentro do cliendaset eu coloquie que é string
GOSTEI 0
Roberto Wutke
23/07/2018
Na verdade vc não consegue passar um conjunto de strings como parametro pro sql ex: ('a', 'b', 'c' ) o sql não vai reconhecer desta forma. Neste caso o que te recomendo é fazer um stringReplace, trocando uma palavra chave, pelo parametro que quer usar.
tipo
select * from medico where med_tratamento in( #Tratamento );
este seria o código dentro da sua query, assim vc faria o seguinte.
ClientDataSet1.close;
ClientDataSet1.CommandText := StringReplace(ClientDataSet1.CommandText, #Tratamento, ' ''a'', ''b'', ''c,'' ');
ClientDataSet1.open;
acredito que isso vá te resolver.
bons códigos.
tipo
select * from medico where med_tratamento in( #Tratamento );
este seria o código dentro da sua query, assim vc faria o seguinte.
ClientDataSet1.close;
ClientDataSet1.CommandText := StringReplace(ClientDataSet1.CommandText, #Tratamento, ' ''a'', ''b'', ''c,'' ');
ClientDataSet1.open;
acredito que isso vá te resolver.
bons códigos.
GOSTEI 0
João Filho
23/07/2018
Olá Marcos bom dia,
Acredito que isso irá resolver seu problema, concatene seus valores utilizando o QuotedStr que ele já ira tratar de colocar as aspas duplas para você ("), é interessante também você criar uma função para te retornar estes dados tratados. Segue abaixo:
ClientDataSet1.close;
ClientDataSet1.Params[0].AsString:= QuotedStr('1') + ',' + QuotedStr('4'));
ClientDataSet1.open;
Atenciosamente, espero ter ajudado.
Acredito que isso irá resolver seu problema, concatene seus valores utilizando o QuotedStr que ele já ira tratar de colocar as aspas duplas para você ("), é interessante também você criar uma função para te retornar estes dados tratados. Segue abaixo:
ClientDataSet1.close;
ClientDataSet1.Params[0].AsString:= QuotedStr('1') + ',' + QuotedStr('4'));
ClientDataSet1.open;
Atenciosamente, espero ter ajudado.
GOSTEI 0