GARANTIR DESCONTO

Fórum Problema com SELECT #351532

08/01/2008

0

Boa tarde.
Sempre consultei minha duvidas nesse forum, mas até entao nao era cadastrado.
Estão hoje, apareceu um problema e resolvi me cadastrar.

Estou bolando um programinha super simples de lembretes.
O problema é, que quado vou fazer uma consulta da a seguinte mensagem de erro.

´Objeto Parameter definido incorretamente. As informações são inconssistente ou incompletas´.

Eu ja tentei de tudo!

Simplifiquei o select, só pra dar um exemplo.
´select * from lembretes where hora = #30/12/1899 17:57:00´

A hora é amanenada num campo ´Data/Hora´, onde é armazenado apenas a hora, sem a data.

O banco de dados é Access 2003.

Fazendo essa consulta direta no access funciona, mas pelo Delphi não

Se puderem me ajudar, agradeço


Eld

Eld

Responder

Posts

08/01/2008

Delphijean

Olá!
Meu caro, não sei se com o access é da mesma forma mas, em muitas linguagens SQL como por exemplo no firebird ao se pesquisar por uma data devemos colocar a data no formato Americano tipo:

yyyy/MM/dd (Formato Americano)

select * from lembretes
where
hora = #1899/12/30 17:57:00


Responder

Gostei + 0

09/01/2008

Eld

Olá! Meu caro, não sei se com o access é da mesma forma mas, em muitas linguagens SQL como por exemplo no firebird ao se pesquisar por uma data devemos colocar a data no formato Americano tipo: yyyy/MM/dd (Formato Americano) select * from lembretes where hora = #1899/12/30 17:57:00


O erro continua!
Tentei trocar os por ´´, e o erro mudou para ´Tipo de dados imcompativel na expressão de critério´

Não sei mais o que fazer


Responder

Gostei + 0

09/01/2008

Anorex

nunca mexi com o access. mas nos outros bancos além do formato americano tem que estar entre aspas simples...


Responder

Gostei + 0

09/01/2008

Eld

nunca mexi com o access. mas nos outros bancos além do formato americano tem que estar entre aspas simples...


se eu coloco aspas simples, da o seguinte erro.

[Error] u_Principal.pas(223): Missing operator or semicolon
[Error] u_Principal.pas(223): Missing operator or semicolon
[Error] u_Principal.pas(223): Statement expected, but expression of type ´Char´ found


Responder

Gostei + 0

09/01/2008

Antonio Pereira

Não tenho certeza, mas acho que está identificando os dois pontos (:) da hora passada no select como parâmetro. Desta forma identifica que :57 é um parametro e :00 é um outro parametro.

´select * from lembretes where hora = #30/12/1899 17[b:f7677564cc]:57[/b:f7677564cc][b:f7677564cc]:00[/b:f7677564cc]´


Responder

Gostei + 0

09/01/2008

Eld

[quote:a51cce52ba=´Antonio Carlos D Pereira´]Não tenho certeza, mas acho que está identificando os dois pontos (:) da hora passada no select como parâmetro. Desta forma identifica que :57 é um parametro e :00 é um outro parametro.

´select * from lembretes where hora = #30/12/1899 17[b:a51cce52ba]:57[/b:a51cce52ba][b:a51cce52ba]:00[/b:a51cce52ba]´[/quote:a51cce52ba]

mas e qual seria a solução pra esse problema?

to perdidasso :(


Responder

Gostei + 0

09/01/2008

Delphijean

A observação de Anorex está correta.

estes # (Sharp) fazem os papel das aspas simples( ´ )?
se não a data deve estar dentro das aspas tipo:

´30/12/1899 17:57:00´

att,


Responder

Gostei + 0

09/01/2008

Eld

A observação de Anorex está correta. estes # (Sharp) fazem os papel das aspas simples( ´ )? se não a data deve estar dentro das aspas tipo: ´30/12/1899 17:57:00´ att,


se eu coloco aspas simples e mesmo usando o formato americano, surge o seguinte erro.

[Error] u_Principal.pas(223): Missing operator or semicolon
[Error] u_Principal.pas(223): Missing operator or semicolon
[Error] u_Principal.pas(223): Statement expected, but expression of type ´Char´ found


Responder

Gostei + 0

10/01/2008

Delphijean

Caro,

Eu surgiro que vc publique uma parte do seu código e a estrutra do banco. pra que nó possamos acompanhar melhor e fazer com que este erro seja resolvido. pra lhe publicar a resposta com a solução.

claro se vc puder!

att,


Responder

Gostei + 0

10/01/2008

Djjunior

Passe a dataHora como parametro sua sql ficaria assim:

select * from lembretes where hora =:dtHora

e antes de abri-la faça o seguinte

qry.close
qry.paramByName(´dtHora´).AsDateTime := StrToDateTime(´30/12/1899 17:57:00´);
qry.Open


p.s. antes de adicionar os campos configure a propriedade params da query.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar