Eder Postado Março 22, 2007 Denunciar Share Postado Março 22, 2007 Ola..pessoalEstou tentando fazer uma consulta paradox muito simples com DATAS mas sempre me retorna erro:procedure TForm1.BitBtn1Click(Sender: TObject);VARTFRETECOMBO, FILIALCOMBO:STRING;BEGINWith Query1 DoBeginClose;TfreteCombo:=(tfcombobox.text);FilialCombo:=(FilialComboBox.text);IF (TfreteCombo = 'TODOS')or(FilialCombo = 'TODAS')THENWith SQL DoBeginClear;Add('Select * from CTRC Where DATA_EMISSAO between :DataINICIAL and :DataFINAL');END;ParamByName('DataINICIAL').AsDateTime := StrToDate( Data1.Text );ParamByName('DataFINAL').AsDateTime := StrToDate( Data2.Text );Open;End;End;erro: TYPE MISMATCH IN EXPRESSIONNão achei nada de errado no codigo..alguém poderia me dar uma dica o que pode estar errado?Gratoum amigo me deu uma dica agora deu certo:Add('Select * from CTRC Where DATA_EMISSAO >= ' + QuotedStr(data1.text) + ' and DATA_EMISSAO <= ' + QuotedStr(data2.text));Valeu...t+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Março 22, 2007 Denunciar Share Postado Março 22, 2007 Olá Eder...Eu utilizo desta forma:Desta forma a consulta verifica dia, mês e ano: With TABELA Do Begin Close; SQL.Clear; SQL.Add('Select * From Alunos'); SQL.Add('Where DataNasc between :Inicial and :Final'); Parameters.ParamByName('Inicial').Value := StrToDate(EdtInicial.Text);; Parameters.ParamByName('Final').Value := StrToDate(EdtFinal.text); SQL.Add('Order By DataNasc'); Open; end;Assim ela só verifica dia e mês:Variáveis: DtInicio, DtFim,Inicio, Fim DtInicio := StrToDate(EdtInicial.text); DtFim := StrToDate(EdtFinal.text); Inicio := MonthOf(DtInicio) *100 +DayOf(DtInicio); Fim := MonthOf(DtFim) *100 +DayOf(DtFim); with TABELA do begin Close; SQL.Clear; SQL.Add('SELECT * '); SQL.Add('FROM TABELA'); if MonthOf(DtFim) < MonthOf(DtInicio) then begin SQL.Add('WHERE (Month(CAMPO)*100+Day(CAMPO)) BETWEEN :Inicio AND 1231 '); SQL.Add('OR (Month(CAMPO)*100+Day(CAMPO)) BETWEEN 101 AND :Fim'); end else SQL.Add('WHERE (Month(CAMPO)*100+Day(CAMPO)) between :Inicio and :Fim'); SQL.Add('ORDER BY CAMPO); Parameters.ParamByName('Inicio').DataType := ftInteger; Parameters.ParamByName('Inicio').Value := Inicio; Parameters.ParamByName('Fim').DataType := ftInteger; Parameters.ParamByName('Fim').Value := Fim; Open; end;Alexandre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Março 22, 2007 Autor Denunciar Share Postado Março 22, 2007 ALEXANDRE....tentei usar seu codigo de dia, mês ano mas deu um errinho:[Error]CSV_DB.pas(703): Undeclared identifier: 'Parameters'tenho que declarar algo....??valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Março 22, 2007 Denunciar Share Postado Março 22, 2007 Qual componente você está usando? eu uso o AdoQuery.Alexandre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Março 22, 2007 Autor Denunciar Share Postado Março 22, 2007 eu usoquery + paradox :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Março 23, 2007 Denunciar Share Postado Março 23, 2007 Pois é Eder a Query não contêm essa propriedade... por isso eu uso o AdoQuery...Mas tente usar dessa forma:Query1.Params.ParamByName(CÓDIGO)Alexandre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Março 23, 2007 Autor Denunciar Share Postado Março 23, 2007 BELEZA...valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Eder
Ola..pessoal
Estou tentando fazer uma consulta paradox muito simples com DATAS mas sempre me retorna erro:
erro: TYPE MISMATCH IN EXPRESSIONNão achei nada de errado no codigo..
alguém poderia me dar uma dica o que pode estar errado?
Grato
um amigo me deu uma dica agora deu certo:
Valeu...t+
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.