Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta Da Erro


Eder

Pergunta

Ola..pessoal

Estou tentando fazer uma consulta paradox muito simples com DATAS mas sempre me retorna erro:

procedure TForm1.BitBtn1Click(Sender: TObject);

VAR

TFRETECOMBO, FILIALCOMBO:STRING;

BEGIN

With Query1 Do

Begin

Close;

TfreteCombo:=(tfcombobox.text);

FilialCombo:=(FilialComboBox.text);

IF (TfreteCombo = 'TODOS')or(FilialCombo = 'TODAS')THEN

With SQL Do

Begin

Clear;

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 EXPRESSION

Nã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:

Add('Select * from CTRC Where DATA_EMISSAO >= ' + QuotedStr(data1.text) + ' and DATA_EMISSAO <= ' + QuotedStr(data2.text));

Valeu...t+

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...