Fórum parametro not found #469533
10/02/2014
0
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
Curtir tópico
+ 0Posts
10/02/2014
Marisiana Battistella
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
10/02/2014
Mr. White
'select * from reservas where dat >= :dataINI and dat <= :dataFIM '
Gostei + 0
11/02/2014
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"?
o campo e esse mesmo ja tentei trocar tud mas nao rolou
Gostei + 0
11/02/2014
Junior
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (01/01/2014);
Gostei + 0
11/02/2014
Alan Souza
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
11/02/2014
Luiz
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
11/02/2014
Junior
Gostei + 0
11/02/2014
Marisiana Battistella
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
11/02/2014
Luiz
Tenta ir no componente ADOQuery1, va na propriedades Parameters, e tente adicionar manualmente estes 2 parâmetros (dataini, datafim).
Gostei + 0
11/02/2014
Marisiana Battistella
Gostei + 0
11/02/2014
Junior
Gostei + 0
11/02/2014
Marcos Saffran
ADOQuery1.Parameters.ParamByName('dataINI').Value:= (01/01/2014);
Você já tentou:
ADOQuery1.Parameters.ParamByName('dataINI').Value:= ('2014-01-01')Gostei + 0
11/02/2014
Marisiana Battistella
Gostei + 0
11/02/2014
William
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
12/02/2014
Junior
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
Clique aqui para fazer login e interagir na Comunidade :)