Fórum Parametros em tempo de Execução #258432
15/11/2004
0
estou tentando passar alguns parametros para uma query feita em tempo de execução, mas esta me retornando um erro, que alega que não existe o parametro passado para a query.
Estou usando Access, e conexão ADO, mas este erro tbem acontece no banco MSSQL 2000.
é mais ou menos assim:
var
qry : Tadoquery;
begin
qry := Tadoquery.Create(nil);
try
qry.connection := conexao;
with qry, qry.sql do
begin
close;
clear;
Add(´Select codcli, nome, cpf from Clientes´);
Add(´Where codcli =: Pcodcli and´);
Add(´cpf =:Pcpf´);
Parameters.parambyname(´codcli´).value := strtoint edtCodigo.text);
Parameters.parambyname(´cpf´).value := edtcpf.text);
open;
end;
finally
Showmessage(´Erro na conexão);
end;
end;
Caso alguem possa me ajudar favor encaminhar email para vrsistemas@terra.com.br
como perceberam estou criando a query em tempo de execução, e esta dando de erros nos parametros ´not found codcli´
Desde ja agradeço pela atenção de todos
Vrssoftware
Curtir tópico
+ 0Posts
15/11/2004
Bruno Belchior
var qry : Tadoquery; begin qry := Tadoquery.Create(nil); try qry.connection := conexao; with qry, qry.sql do begin close; clear; Add(´Select codcli, nome, cpf from Clientes´); Add(´Where codcli =: Pcodcli and´); Add(´cpf =:Pcpf´); Parameters.parambyname(´:Pcodcli´).value:=strtoint (edtCodigo.text); Parameters.parambyname(´:Pcpf´).value := edtcpf.text; open; end; finally Showmessage(´Erro na conexão); end; end;
espero ter ajudado...
Gostei + 0
15/11/2004
Godzilla_xf
Add(´Where codcli =[b:e501dc832e]: Pcodcli[/b:e501dc832e] and´);
tente remover os espaços assim: [b:e501dc832e]where codcli = :Pcodcli[/b:e501dc832e]
espero ter ajudado...
Gostei + 0
16/11/2004
Godzilla_xf
Add(´Select codcli, nome, cpf from Clientes´);
Add(´Where codcli =: Pcodcli and´);
Add(´cpf =:Pcpf´);
Tente fazer assim:
Add(´Select codcli, nome, cpf from Clientes´);
Add(´Where [b:b75338b7eb](codcli = :Pcodcli)[/b:b75338b7eb] and [b:b75338b7eb](cpf = :Pcpf)[/b:b75338b7eb]´);
Acredito que seje isso.
falow
té +
Gostei + 0
16/11/2004
Paulo_amorim
Se seu parâmetro se chama Pcodcli, vc precisa chamá-lo como Pcodcli, e não codcli, como está sendo feito...
O mesmo vale para Pcpf... passe como Pcpf, e não cpf...
Assim, faça
ParamByName(´Pcodcli´).Value := Codigo; ParamByName(´Pcpf´).Value := CPF;
Espero que ajude
Até+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)