Criar Parametro nume query em tempo de execução
Prezados,
Como eu faço para criar parametros em tempo de execuçao em uma QUERY? Estou usando uma ADOQUERY.
Tentei isto:
with QSIPTPROP do begin
close;
SQL.Clear;
SQL.Add(´SELECT * FROM SIPTPROP´);
SQL.Add(´WHERE DNREFE = :PNREFE´);
Parameters.CreateParameter(´PNREFE´, ftSTRING, pdINPUT, 4, nil);
Parameters.ParamByName(´PNREFE´).Value := Edit1.Text;
open;
end;
Mas não funciona, não sei ouqe está faltando.
Agradeço a todos
Jairo
Como eu faço para criar parametros em tempo de execuçao em uma QUERY? Estou usando uma ADOQUERY.
Tentei isto:
with QSIPTPROP do begin
close;
SQL.Clear;
SQL.Add(´SELECT * FROM SIPTPROP´);
SQL.Add(´WHERE DNREFE = :PNREFE´);
Parameters.CreateParameter(´PNREFE´, ftSTRING, pdINPUT, 4, nil);
Parameters.ParamByName(´PNREFE´).Value := Edit1.Text;
open;
end;
Mas não funciona, não sei ouqe está faltando.
Agradeço a todos
Jairo
Jairo Norenberg
Curtidas 0
Respostas
Ronaldo
10/02/2004
A query conhece o seu parâmetro, você pode informar o que ele é:
SQL.Add(´SELECT * FROM SIPTPROP´);
SQL.Add(´WHERE DNREFE = :PNREFE´);
Parameters.ParamByName(´PNREFE´).DataType = ftString;
Parameters.ParamByName(´PNREFE´).Value := Edit1.Text;
open;
SQL.Add(´SELECT * FROM SIPTPROP´);
SQL.Add(´WHERE DNREFE = :PNREFE´);
Parameters.ParamByName(´PNREFE´).DataType = ftString;
Parameters.ParamByName(´PNREFE´).Value := Edit1.Text;
open;
GOSTEI 0
Jairo Norenberg
10/02/2004
Valeu Ronaldo, acho que eu estava complicando as coisas... Obrigado.
Jairo
Jairo
GOSTEI 0
Anderson Carvalho
10/02/2004
Fala Jairo Norenberg, eu consegui.
O problema é um ultimo parametro.
Ou vc passa NULL ou passa o valor que o parametro vai receber
Exemplo Query.Parameters.CreateParameter('NOME',FtString,PdInput,40,null);
ou
Query.Parameters.CreateParameter('NOME',FtString,PdInput,40,'Jairo');
Espero ter ajudado
Abraços
Anderson
O problema é um ultimo parametro.
Ou vc passa NULL ou passa o valor que o parametro vai receber
Exemplo Query.Parameters.CreateParameter('NOME',FtString,PdInput,40,null);
ou
Query.Parameters.CreateParameter('NOME',FtString,PdInput,40,'Jairo');
Espero ter ajudado
Abraços
Anderson
GOSTEI 0
Thiago Palmeira
10/02/2004
Só uma dica para aumentar a performance dessa query, tenta usar os nomes das tabelas e não o asterisco no "SELECT"
GOSTEI 0