parametro not found
boa tarde pessoal
preciso da ajuda de voces
montei um sql que pesquisa entre duas datas usando o ado query e mysql. no entanto quando clico no botao, retorna a mensagem:" parametro ('dataINI') not found, ja cheguei a criar os parametros mas nao obtive o resultado desejado. por favor me ajudem !
abaixo segue o codigo:
preciso da ajuda de voces
montei um sql que pesquisa entre duas datas usando o ado query e mysql. no entanto quando clico no botao, retorna a mensagem:" parametro ('dataINI') not found, ja cheguei a criar os parametros mas nao obtive o resultado desejado. por favor me ajudem !
abaixo segue o codigo:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from reservas where dat between :dataINI and :dataFIM';
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (DateToStr(dpeInicio.Date));
ADOQuery1.Parameters.ParamByName('dataFIM').Value:= (DateToStr(dpeFinal.Date));
ADOQuery1.ExecSQL;
ADOQuery1.Open;Junior
Curtidas 0
Mais Respostas
Marisiana Battistella
10/02/2014
Boa tarde Junior!
Verifica no teu SQL:
'select * from reservas where dat between :dataINI and :dataFIM';
Está correto o nome do campo "dat" no SQL? Não seria "data"?
Verifica no teu SQL:
'select * from reservas where dat between :dataINI and :dataFIM';
Está correto o nome do campo "dat" no SQL? Não seria "data"?
GOSTEI 0
Mr. White
10/02/2014
Tenta trocar esse select com between pra isso:
'select * from reservas where dat >= :dataINI and dat <= :dataFIM '
GOSTEI 0
Junior
10/02/2014
Boa tarde Junior!
Verifica no teu SQL:
'select * from reservas where dat between :dataINI and :dataFIM';
Está correto o nome do campo "dat" no SQL? Não seria "data"?
Verifica no teu SQL:
'select * from reservas where dat between :dataINI and :dataFIM';
Está correto o nome do campo "dat" no SQL? Não seria "data"?
bom dia Marisiana
o campo e esse mesmo ja tentei trocar tud mas nao rolou
o campo e esse mesmo ja tentei trocar tud mas nao rolou
GOSTEI 0
Junior
10/02/2014
ele cotinua a dar o mesmo erro e da erro nessa linha aqui
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (01/01/2014);
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (01/01/2014);
GOSTEI 0
Alan Souza
10/02/2014
tenta assim:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from reservas where dat between :dataINI and :dataFIM';
ADOQuery1.Prepare;
ADOQuery1.Parameters.ParamByName('dataINI').DataType := ftString;
ADOQuery1.Parameters.ParamByName('dataFIM').DataType := ftString;
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (DateToStr(dpeInicio.Date));
ADOQuery1.Parameters.ParamByName('dataFIM').Value:= (DateToStr(dpeFinal.Date));
ADOQuery1.Open;
GOSTEI 0
Luiz
10/02/2014
Se não funcionar, tente isto:
with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from reservas where dat between :dataini and :datafim ');
Prepared := True;
Parameters.ParseSQL(SQL.Text, True);
Parameters.ParamByName('dataini').Value:= (DateToStr(dpeInicio.Date));
Parameters.ParamByName('datafim').Value:= (DateToStr(dpeFinal.Date));
Open;
end;
GOSTEI 0
Junior
10/02/2014
ainda nao consegui
GOSTEI 0
Marisiana Battistella
10/02/2014
Talvez o teu problema não esteja ali no código, mas na Query...
Tenta verificar se vc configurou os parâmetros corretamente, se o SQL está correto e se os nomes estão idênticos...
Acho q essa pode ser uma possibilidade...
Tenta verificar se vc configurou os parâmetros corretamente, se o SQL está correto e se os nomes estão idênticos...
Acho q essa pode ser uma possibilidade...
GOSTEI 0
Luiz
10/02/2014
Continua o mesmo erro?
Tenta ir no componente ADOQuery1, va na propriedades Parameters, e tente adicionar manualmente estes 2 parâmetros (dataini, datafim).
Tenta ir no componente ADOQuery1, va na propriedades Parameters, e tente adicionar manualmente estes 2 parâmetros (dataini, datafim).
GOSTEI 0
Marisiana Battistella
10/02/2014
Conseguiu resolver, Junior?
GOSTEI 0
Junior
10/02/2014
no caso esse parametros ja estao la, e ainda nao consegui resolver..
GOSTEI 0
Marcos Saffran
10/02/2014
ele cotinua a dar o mesmo erro e da erro nessa linha aqui
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (01/01/2014);
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (01/01/2014);
Você já tentou:
ADOQuery1.Parameters.ParamByName('dataINI').Value:= ('2014-01-01')GOSTEI 0
Marisiana Battistella
10/02/2014
Posta o SQL que vc tem na Query....
GOSTEI 0
William
10/02/2014
Colega usando com DBExpress só passo o parâmetro da forma correta, apenas chamando 'AsDateTime', claro estou supondo que o seu campo dat seja do tipo DATE no banco de dados:
Qualquer dúvida estou a disposição ....
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from reservas where dat between :dataINI and :dataFIM';
ADOQuery1.Parameters.ParamByName('dataINI').AsDateTime:= dpeInicio.Date;
ADOQuery1.Parameters.ParamByName('dataFIM').AsDateTime:= dpeFinal.Date;
ADOQuery1.ExecSQL;
ADOQuery1.Open;
Qualquer dúvida estou a disposição ....
GOSTEI 0
Junior
10/02/2014
pessoal consegui
modifiquei um pouco o codigo do wilian e criei outro campo de data dentro do banco.
o codigo completo do botão ficou assim:
vlw pela ajuda!
modifiquei um pouco o codigo do wilian e criei outro campo de data dentro do banco.
o codigo completo do botão ficou assim:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from reservas where dat2 between :dataINI and :dataFIM';
ADOQuery1.Parameters.ParamByName('dataINI').Value:= FormatDateTime('yyyy-mm-dd',dpeInicio.Date);
ADOQuery1.Parameters.ParamByName('dataFIM').Value:= FormatDateTime('yyyy-mm-dd',dpeFinal.Date);
ADOQuery1.ExecSQL;
ADOQuery1.Open;
if ADOQuery1.Eof then
begin
ShowMessage('Cadastro Não Localizado, será gerado o relatório Geral!');
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select* from reservas');
ADOQuery1.Open;
Edit2.Text:='';
Edit2.SetFocus;
end
else
ShowMessage('A consulta Foi realizada com sucesso!!');
vlw pela ajuda!
GOSTEI 0
Nelson Santos
10/02/2014
Desenvolva softwares 3D em Delphi 7
www.3dsistemas.com.br
www.3dsistemas.com.br
GOSTEI 0