Parametros em tempo de Execução
Ola Galera,
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
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
Curtidas 0
Respostas
Bruno Belchior
15/11/2004
isso ocorre pq o parâmetro são os antecedidos de dois pontos (:) e vc está passando os valores para os campos...
espero ter ajudado...
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
Godzilla_xf
15/11/2004
Olá não sei c vc percebeu mais esta criando um parametro com um espaço depois do sinal de dois pontos:
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...
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
Godzilla_xf
15/11/2004
Olá pode ser tbem a questão da separação dos Parametros tipo:
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é +
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
Paulo_amorim
15/11/2004
Olá
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
Espero que ajude
Até+
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