Pegando valores errados

Delphi

05/09/2005

Uso Delphi 6 e Firebird 1,5 com os componentes da paleta Interbase

Utilizo a seguinte sql para conseguir verificar se a comunicação já foi vista ou nao pela pessoa.

Só que parece que as vezes o time e o date nao trazem o valor para ela, será que alguem consegue me dizer o que está errado.

QueComunicacao.SQL.Clear;
QueComunicacao.SQL.Add(´Select * from Comunicacao ´+
´where UsuReceptor = ´´´+IntToStr(UsuAdm)+´´´ ´+
´and DataEntrega <= ´´´+FormatDateTime(´MM/DD/YYYY´,Now)+´´´ ´+
´and HoraEntrega <= ´´´+TimeToStr(Time)+´´´ ´+
´and DataRecepcao = ´´´+FormatDateTime(´MM/DD/YYYY´,StrToDate(´30/12/1899´))+´´´ ´);
QueComunicacao.Open;

Agradeço antecipadamente qualquer ajuda.

Sandro


Salupe

Salupe

Curtidas 0

Respostas

Martins

Martins

05/09/2005

Isso acontece sempre ou somente as vezes ??

Confirme se o código é esse mesmo:
QueComunicacao.Close;
QueComunicacao.SQL.Clear; 
QueComunicacao.SQL.Add(´Select * from Comunicacao ´+ 
´where UsuReceptor = ´´´+IntToStr(UsuAdm)+´´´ ´+ 
´and DataEntrega <= ´´´+FormatDateTime(´MM/DD/YYYY´,Now)+´´´ ´+ 
´and HoraEntrega <= ´´´+TimeToStr(Time)+´´´ ´+ 
´and DataRecepcao = ´´´+FormatDateTime(´MM/DD/YYYY´,StrToDate(´30/12/1899´))+´´´ ´); // ñ entendi aqui...



GOSTEI 0
Salupe

Salupe

05/09/2005

o valor indicado na horarecepcao é pra verificar se ainda nao foi lida a mensagem, o 30/12/1899 é como o sql interpreta a data nula ou 0.

isso eu já faço em outras procuras mas nessa nao sei porque está passando alguma das datas sem demonstrar a data correta ou sei lá o que.


GOSTEI 0
Martins

Martins

05/09/2005

As outras chamadas assim, funcionam nessa mesma máquina, pergunto isso imaginando q o problema é apenas nessa máquina, q ainda não foi testado em outra.

Não posso nem testar aqui, pq não tenho Delphi nessa máquina nem IB.

Mas, aguenta aí q o pessoal ajuda.


Boa Sorte!!!


GOSTEI 0
Martins

Martins

05/09/2005

o valor indicado na horarecepcao é pra verificar se ainda nao foi lida a mensagem, o 30/12/1899 é como o sql interpreta a data nula ou 0. isso eu já faço em outras procuras mas nessa nao sei porque está passando alguma das datas sem demonstrar a data correta ou sei lá o que.


O erro não poderia ser causado por essa data, pq Ib não trabalha com datas no formato mm/dd/aaaa ?


GOSTEI 0
Salupe

Salupe

05/09/2005

Concordo que o ib e até o fb nao trabalham com o formato mm/dd/aaaa, mas quando se forma o sql ele trabalha nesse formato, forçando a data ser traduzida para o formato especificado.

Existe alguma possibilidade de as funções do delphi date ou time nao estarem trazendo a data corretamente.


GOSTEI 0
Martins

Martins

05/09/2005

Concordo que o ib e até o fb nao trabalham com o formato mm/dd/aaaa, mas quando se forma o sql ele trabalha nesse formato, forçando a data ser traduzida para o formato especificado. Existe alguma possibilidade de as funções do delphi date ou time nao estarem trazendo a data corretamente.


Elas trazem certinho, só se seu PC está com algum problema com relação a essas datas e hora.

Me responda uma coisa, ele pelo traz algum registro, ou nunca fez o q era pra fazer?


GOSTEI 0
Salupe

Salupe

05/09/2005

ele de vez em quando traz as datas corretamente e de vez em quando não, fica com se nao tivesse data, até mesmo pelo debug, as vezes mostra as vezes nao, assim ele faz com que de repente uma mensagem fique muito tempo sem ser mostrada, e de repente mostra ela, parece que nesse momentos os dados aparecem corretamente. E esse mesmo estilo de busca de datas eu utilizo em outras buscas e nunca me deu problema, em qualquer maquina que eu faça a busca sempre é assim, pra buscar a comunicacao as vezes funciona as vezes nao o resto funciona corretamente.


GOSTEI 0
POSTAR