Fórum Erro ao Abrir ClientDataSet #375069

18/09/2009

0

Caros Colegas..

Estou com um problema e não consigo visualizar a solução..

Tento executar um SQL usando o ClienDataSet ligado a um TSQLQuery

a instrução :

"select Distinct Cast(C_DATA_HORA_MOVIMENTO as date) as C_DATA_HORA_MOVIMENTO
from ME0100
where C_COD_EMPRESA = ´002´ and
Cast(C_DATA_HORA_MOVIMENTO as date) between ´09/18/2009´ and ´09/18/2009´
order by C_DATA_HORA_MOVIMENTO"


Dá erro quando executo pelo delphi, mas não retorna nenhum erro quando executo direto na base.

O erro:

"Unexpected end of command - line 1, column 484"


O detalhe, o sql não tem coluna 484 e não vejo nenhum erro!

Alguém sabe o motivo do erro ?

Agardeço a todos antecipadamente.


Cabelo

Cabelo

Responder

Posts

18/09/2009

Osocram

esse select que vc postou aqui vc pegou em tempo de execução?

tipo deixa o delphi gerar o comando e antes dele executar vc faz a copia do cds.commandText, copiar p um Memo ou para o ClipBoard.

Ou vc pode tbm colocar um sqlMonitor e ver o que ele ta gerando.

Pois olhando assim por cima não vi problema no seu sql.


Responder

Gostei + 0

18/09/2009

Cabelo

Obrigado pela resposta..

estou pegando em tempo de execução sim.. exatamente o que está sendo enviado pelo ClientDataSet

na verdade eu incluo o SQL na TSQLQuery e dou um open no client, mas tá retornando este erro..

Imagina o que possa ser ?


Responder

Gostei + 0

18/09/2009

Osocram

Tente faze o seguinte
select C_DATA_HORA_MOVIMENTO
from ME0100 
where C_COD_EMPRESA = ´002´ 
order by C_DATA_HORA_MOVIMENTO


So pare ter certeza que o problema não é o cast.


Responder

Gostei + 0

18/09/2009

Cabelo

Fiz exatamente este teste..rsssss

Tb achei qye pudesse ser..

Acho que o problemas está no between

Se mando com um dia de diferença entre as datas dá certo.. rssss

Estou analisando.. mas deveria funcionar como está.. sempre foi assim.. será que é alguma configuração do BD ?


Responder

Gostei + 0

18/09/2009

Osocram

Cara nunca vi esse problema com o between.

Qual o banco que vc esta usando?

talvez seja a formatação da data.


Responder

Gostei + 0

18/09/2009

Builder

Dependendo do banco de dados, a data deverá ser formatada com pontos ao invés de barras, conforme dito pelo osocram e que também concordo:

Troque:

´09/18/2009´ and ´09/18/2009´

Por:

´09.18.2009´ and ´09.18.2009´


Tente executar o comando em um utilitário SQL para ver se roda, por exemplo se estiver usando o Firebird, rode o comando no Flamerobin.

Também pode colocar uma captura de texto após setar o commandtext e antes de executar afim de verificar em tempo de execução a formatação do comando. Cuidado para não pegar o comando truncado. Joque o commandtext em um Tmemo ou algo similar.


Responder

Gostei + 0

21/09/2009

Cabelo

Eu uso firebird e sempre utilizei com as barras

formato : mm/dd/yyyy

Nunca tive problemas tb..

Tenho vários sistema e sempre utilizei desta forma.. estou procurando o que pode ser.. pois não acredito que o problema seja no BD pois executo estra instrução direto nele e dá certo.. retorna as datas sem erro.. Mesmo usando o between com a mesma data..

O problema está na hora em que faço isto pelo delphi..

Acho que o problemas está no ClientDataSet..

Vocês tem idéia do que pode ser ?


Responder

Gostei + 0

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

Aceitar