caiogarcia

[RESOLVIDO] COMO PASSAR PARAMETROS PRA UMA QUERIE USANDO O OPERADOR IN

6 posts in this topic

Preciso passar pra uma querie feita no Windev, parametros para serem inseridos dentro do parenteses do IN.

Ex: SELECT * FROM venda WHERE cliente_id IN (conteudo1,conteudo2,conteudo3)

Não estou sabendo como montar e passar esses parametros. Ja tentei adicionar numa variavel string com a estrutura certinha, até agora sem nenhum sucesso.

E preciso que seja uma querie feita no windev pq ela é usada num relatorio, e fica mais facil de trabalharo report assim ...

Share this post


Link to post
Share on other sites

Testei aki e funcionou normalmente


dsClientes is Data Source
HExecuteSQLQuery(dsClientes, hQueryDefault, "Select * From Clientes where tolerancia in ( 1, 3, 22)" )

Testei com DBF e HFSQL Cliente Server e Classic

Se vc esta testando no PostgreSQL pode ser q o PostgreSQL não aceite o IN, mas ia não sei.

Share this post


Link to post
Share on other sites
11 horas atrás, Cassiano disse:

Testei aki e funcionou normalmente





dsClientes is Data Source

HExecuteSQLQuery(dsClientes, hQueryDefault, "Select * From Clientes where tolerancia in ( 1, 3, 22)" )

Testei com DBF e HFSQL Cliente Server e Classic

Se vc esta testando no PostgreSQL pode ser q o PostgreSQL não aceite o IN, mas ia não sei.

Ele funciona no Postgresql, a questão é como passar essa lista de parametros pro IN que eu não estou conseguindo ...

Share this post


Link to post
Share on other sites

Acabei de descobrir que o problema não está na passagem de parametros pra querie, pois ela por si propria funciona da seguinte maneira:

Ex Querie: ... IN ({Parametro})

Ex Passagem Parametro:  QRY.Parametro = "param1, param2, param3"

O problema está na passagem via iInitReportQuerie ...

Existe alguma forma de passar parametros pro relatório da mesma forma que a Querie, separadamente assim ?

 

Share this post


Link to post
Share on other sites

Posted (edited)

4 horas atrás, caiogarcia disse:

Acabei de descobrir que o problema não está na passagem de parametros pra querie, pois ela por si propria funciona da seguinte maneira:

Ex Querie: ... IN ({Parametro})

Ex Passagem Parametro:  QRY.Parametro = "param1, param2, param3"

O problema está na passagem via iInitReportQuerie ...

Existe alguma forma de passar parametros pro relatório da mesma forma que a Querie, separadamente assim ?

 

Resolvi usando o HEXECUTEQUERY dentro do code do REPORT e tirando o iInitReportQuery de fora.

Detalhe importante: ao invés de vírgula(,) tive que usar ponto e virgula (;) entre os parametros da clausula IN

Ex : ... IN(param1;param2;param3)

Edited by caiogarcia
2 people like this

Share this post


Link to post
Share on other sites

Q bom parabéns, obrigado por compartilhar.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now