Como já disse, não sou conhecedor do Firebird, mas em pesquisa na net entre varios este trecho chamou atenção:
é sempre bom lembrar como o Firebird Trabalha com as Datas e seus formatos.
Primeiro - é sempre em string!
Segundo - existem 3 formatos para passar a data para a SQL_String:
'yyyy-mm-dd' ou 'dd.mm.yyyy' ou 'mm/dd/yyyy'
[ Sempre com Aspas Simples para não dar xabú ]
Terceiro - Você só poderar utilizar-se do Date se estiver usando o sql Dialect 3, caso contrário o você só terá Time ou TimeStamp
http://comunidade.itlab.com.br/eve/foru ... 2091015312
.
Então a sua primeira query (a que funciona) retonra (ou envia) no Array
SELECT CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.EMPRESA, CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.VALOR
FROM CONTAS_RECEBER.CONTAS_RECEBER
WHERE (CONTAS_RECEBER.EMISSAO>{d '2012-10-11'}) AND (CONTAS_RECEBER.EMISSAO<={d '2012-10-31'})
A sua modificação (lembrando que o formato data entre "#" e valido para access e muitos outros bancos)
SELECT CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.EMPRESA, CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.VALOR
FROM CONTAS_RECEBER.CONTAS_RECEBER
WHERE (CONTAS_RECEBER.EMISSAO># 2012-10-11#) AND (CONTAS_RECEBER.EMISSAO<=#2012-10-31#)
Talvez então possa funcionar assim
Array( _
"SELECT CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.EMPRESA, CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.VALOR" & _
Chr(13) & "" & Chr(10) & "FROM CONTAS_RECEBER.CONTAS_RECEBER" & Chr(13) & "" & Chr(10) & _
"WHERE (CONTAS_RECEBER.EMISSAO>'" & Data1 & "') AND (CONTAS_RECEBER.EMISSAO<='" & Data2 & "')")
cujo retorno seria
SELECT CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.EMPRESA, CONTAS_RECEBER.EMISSAO, CONTAS_RECEBER.VALOR
FROM CONTAS_RECEBER.CONTAS_RECEBER
WHERE (CONTAS_RECEBER.EMISSAO>'2012-10-11') AND (CONTAS_RECEBER.EMISSAO<='2012-10-31')
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 12/11/2012 6:48 am