Array
(
)

Pesquisa por data dando erro..

Gigatel
   - 27 nov 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...
#Código


_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...

#Código

[Error] Unit41.pas(86): Missing operator or semicolon


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


Oscar Candido
   - 27 nov 2005

Vc fechou a última aspa??
seria:
#Código

...´StrToDate(MaskEdit2.text)´;

ao invés de :
#Código
...´StrToDate(MaskEdit2.text);



Gigatel
   - 27 nov 2005

Mudei assim
#Código


_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
#Código

conversion errorfrom string 22/11/2005


tentei converter más num deu certo..


Oscar Candido
   - 27 nov 2005

Ops, falei besteira :oops: :oops:

acho que seria
#Código

_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;



Gigatel
   - 27 nov 2005

deu este erro aki
#Código


[Error] Unit41.pas(86): Incompatible types: ´String´ and ´TDateTime´
[Error] Unit41.pas(86): Incompatible types: ´String´ and ´Extended´


Vlw pelo apoio


Gigatel
   - 28 nov 2005

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...


Okama
   - 28 nov 2005

Olá Gigatel,

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

#Código

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;
...



Gigatel
   - 29 nov 2005


Citação:
Olá Gigatel,

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

#Código

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:

#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

#Código

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


vlw


Gigatel
   - 29 nov 2005

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

#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;


Vlw...pelo apoio t+