Fórum Query com parâmetros #37726
30/07/2003
0
a sequencia de linhas é assim :
query1.sql.add(´select * from ´mytable´ where ´DataVenc´ <=:par0 ´);
query1.sql.add(´and ´StatusPago´ =:par1´);
query1.parambyname(´par0´).asdate:=strtodate(edit1.text);
query1.parambyname(´par1´).asstring:=´S´
query1.open;
só que se eu deixar só o par0(primeiro parametro) a query lê normal, mas se colocar o par1(segundo parametro) não traz os registros que eu preciso.
É URGENTE ......
Carlos Jatai
Curtir tópico
+ 0Posts
30/07/2003
Midas
a sequencia de linhas é assim :
query1.sql.add(´select * from ´mytable´ where ´DataVenc´ <=:par0 ´);
query1.sql.add(´and ´StatusPago´ =:par1´);
query1.parambyname(´par0´).asdate:=strtodate(edit1.text);
query1.parambyname(´par1´).asstring:=´S´
query1.open;
só que se eu deixar só o par0(primeiro parametro) a query lê normal, mas se colocar o par1(segundo parametro) não traz os registros que eu preciso.
É URGENTE ......[/quote:a48539c52e]
que tal no segundo parametro use ...
query1.sql.add(´ or ´STATuspago´ = :par1´);
Gostei + 0
30/07/2003
Afarias
|mas se colocar o par1(segundo parametro) não traz os registros que eu
|preciso.
O q acontece?? Ocorre algum erro?? se SIM, qual o erro?? se NÃO, então é pq vc não tem valores com a condição especificada.
T+
Gostei + 0
31/07/2003
Carlos Jatai
Midas, é necessáriuo as duas condições para quos registro sejam mostardos como desejamos.
Obrigado
Gostei + 0
31/07/2003
Afarias
Rode o mesmo SQL em um aplicativo como o IBConsole colocando os mesmos valores nos parâmetros e vcja se traz registros.
Te aconselho usar um SQLMonitor para verificar os valores dos parâmetros enviados ao banco, e então verificar se os parâmetros estão incorretos.
T+
Gostei + 0
03/08/2003
Carlos Jatai
Um amigo do Paraná deu a solução para aquele problema da query q ue não lia dois parâmetros, sugeriu que eu tebtasse os commando prepare e unprepare, que funcionou imediatamente ....
Agradeço a vcs a ajuda, que DEUS os abençoe ricamente.
Carlos Jatai
Gostei + 0
03/08/2003
Afarias
|não lia dois parâmetros, sugeriu que eu tebtasse os commando prepare
|e unprepare, que funcionou imediatamente ....
Não tinha reparado q estava usando BDE. No IBX o Prepare/Unprepare são automáticos, de forma q nunca precisam ser utilizados.
|Agradeço a vcs a ajuda, que DEUS os abençoe ricamente.
Obrigado. A função do Fórum é justamente trocar experiências.
T+
Gostei + 0
03/08/2003
Aroldo Zanela
Não creio que o problema seja relacionado com prepare/unprepare, pois a única coisa que vejo que está faltando é fechar a query antes de passar os parâmetros. Mas imaginei que isso foi omitido apenas neste fragmento de código.
Lembrando que de acordo com seu script, os dois parâmetros devem ser atendidos (verdadeiros) para que se tenha um conjunto de dados de resultado. Portanto, independente de outros fatores, seu script acima, com exceção da ausência do close está correto.
A propósito, quando você está utilizando parâmetros não é necessário efetuar a ´montagem´ do SQL dinamicamente, bastando fechar, passar os parâmetros e abrir.
Gostei + 0
03/08/2003
Imstaff
[i:cbc0982fed]query1.sql.add(´select * from ´mytable´ where ´DataVenc´ <=:par0 ´);
query1.sql.add(´and ´StatusPago´ =:par1´); [/i:cbc0982fed]
[b:cbc0982fed]query1.Params.ParseSQL(query1.SQL.Text,True);[/b:cbc0982fed]
[i:cbc0982fed]query1.parambyname(´par0´).asdate:=strtodate(edit1.text);
query1.parambyname(´par1´).asstring:=´S´
query1.open; [/i:cbc0982fed]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)