Pesquisa por data dando erro..

27/11/2005

E aí ?... antes eu usava VARCHAR para receber valores data aí resolví mudar os campos para DATE, só que quando faço um pesquisa ela está dando erro..vela o que pode ser de errado...
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.Close;
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Clear;
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Add(´Select * from ORCAMENTO_OFIC_ELET where GS_OOE_DATA_ENT between ´+StrToDate(MaskEdit1.text)´ and ´StrToDate(MaskEdit2.text);
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.Open;


este é o erro...

[Error&93; Unit41.pas(86): Missing operator or semicolon


credo muda uma coisinha e dá um problema danado...vlw t+


Gigatel

Respostas

27/11/2005

Oscar Candido

Vc fechou a última aspa??
seria:
...´StrToDate(MaskEdit2.text)´; 

ao invés de :
...´StrToDate(MaskEdit2.text); 



Responder Citar

27/11/2005

Gigatel

Mudei assim
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Add(´Select * from ORCAMENTO_OFIC_ELET where GS_OOE_DATA_ORC between ´+char(39)+MaskEdit1.text+char(39)+´ and ´ +char(39)+MaskEdit2.text+char(39));


más dá agora este erro
conversion errorfrom string 22/11/2005


tentei converter más num deu certo..


Responder Citar

27/11/2005

Oscar Candido

Ops, falei besteira :oops: :oops:

acho que seria
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.Close;
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Clear;
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Add(´Select * from ORCAMENTO_OFIC_ELET where GS_OOE_DATA_ENT between ´+ StrToDate(MaskEdit1.text)+ ´ and ´ + StrToDate(MaskEdit2.text);
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.Open;



Responder Citar

27/11/2005

Gigatel

deu este erro aki
[Error&93; Unit41.pas(86): Incompatible types: ´String´ and ´TDateTime´
&91;Error&93; Unit41.pas(86): Incompatible types: ´String´ and ´Extended´


Vlw pelo apoio


Responder Citar

28/11/2005

Gigatel

Andei pesquisando más só mudei o tipo do campo de varchar para date...e dá o erro...muito estranho.. e continua sem solução...


Responder Citar

28/11/2005

Okama

Olá Gigatel,

Insira Aspas simples e formate a data antes de enviar para o SQL.
Não há necesisdade de usar Varchar:

Var
  DataINI, DataFIM : TDateTime
Begin

Try 
   DataINI := StrToDateTime( MaskEdit1.Text );
   DataFIM := StrToDateTime( MaskEdit2.Text );
Except
end; 


SQL.text := ´Select * from TABELA  where Campo_Data between ´+
                  QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataINI) )+
          ´ and ´+
                  QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataFIM) );

              
Open;
...



Responder Citar

29/11/2005

Gigatel

Olá Gigatel, Insira Aspas simples e formate a data antes de enviar para o SQL. Não há necesisdade de usar Varchar:
Var
  DataINI, DataFIM : TDateTime
Begin

Try 
   DataINI := StrToDateTime( MaskEdit1.Text );
   DataFIM := StrToDateTime( MaskEdit2.Text );
Except
end; 


SQL.text := ´Select * from TABELA  where Campo_Data between ´+
                  QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataINI) )+
          ´ and ´+
                  QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataFIM) );

              
Open;
...



OI blz ?...Coloquei este código:

procedure T_FORM_OS_SELDATA_MOS.Button1Click(Sender: TObject);
Var
  DataINI, DataFIM : TDateTime;
Begin
  Try
    DataINI := StrToDateTime( MaskEdit1.Text );
    DataFIM := StrToDateTime( MaskEdit2.Text );
    Except
  end;
   _FORM_OS_REL_IMP_01 := T_FORM_OS_REL_IMP_01.Create(Self);
   _FORM_OS_REL_IMP_01.QRLabel6.Caption := ´Relatório de O.S. - Entradas´;
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.Close;
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Clear;
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Add(´Select * from ORCAMENTO_OFIC_ELET  where GS_OOE_DATA_ORC between ´+
                  QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataINI) )+
          ´ and ´+
                  QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataFIM) );
  _FORM_OS_REL_IMP_01.BD_OFC_ELE.Open;
  _FORM_OS_REL_IMP_01.QuickRep1.Preview;
end;



más dá este erro

[Error&93; Unit41.pas(98): ´)´ expected but ´;´ found


vlw


Responder Citar

29/11/2005

Gigatel

Vlw..agora funcionou estava faltando um parenteses ( acho que é assim que se escreve )....A funcão ficou assim...

procedure T_FORM_OS_SELDATA_MOS.Button1Click(Sender: TObject);
Var
  DataINI, DataFIM : TDateTime;
Begin
  Try
    DataINI := StrToDateTime( MaskEdit1.Text );
    DataFIM := StrToDateTime( MaskEdit2.Text );
    Except
  end;
   _FORM_OS_REL_IMP_01 := T_FORM_OS_REL_IMP_01.Create(Self);
   _FORM_OS_REL_IMP_01.QRLabel6.Caption := ´Relatório de O.S. - Entradas´;
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.Close;
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Clear;
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.SQL.Add(´Select * from ORCAMENTO_OFIC_ELET  where GS_OOE_DATA_ORC between ´+ QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataINI) )+ ´ and ´+ QuotedStr( FormatDateTime(´mm/dd/yyyy´, DataFIM)));
   _FORM_OS_REL_IMP_01.BD_OFC_ELE.Open;
   _FORM_OS_REL_IMP_01.QuickRep1.Preview;
end;


Vlw...pelo apoio t+


Responder Citar