GARANTIR DESCONTO

Fórum DUVIDA EM sql IN #595661

23/07/2018

0

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 ?
Marcos Cruz

Marcos Cruz

Responder

Post mais votado

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.

ClientDataSet1.Params[0].AsString:= '1,4';

Fernando Duwe

Fernando Duwe
Responder

Gostei + 2

Mais Posts

24/07/2018

Marcos Cruz

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
Responder

Gostei + 0

24/07/2018

Roberto Wutke

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.
Responder

Gostei + 0

25/07/2018

João Filho

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar