Erro no DBX
Olá, estou com problemas nessa execução.
Sempre retorna erros variados, às vezes diz que o campo nao
existe, outras diz unssigned code. e sei que o problema está na parte
da data porque se tirar a linha ele funciona.
Está tudo certo, sqlDataSet ligado no banco, banco ativo. sei lá... Alguém em ajuda?
SELECT SEQUENCIAL, DATA, VALOR, DESCRICAO, CLI, FORNEC, E_S
FROM CAIXA
WHERE SEQUENCIAL > 0
AND VALOR BETWEEN :VAL1 AND :VAL2
AND DESCRICAO LIKE :DESCRI
AND CLI = :CLIE
AND DATA >= :DATA1 AND DATA <= :DATA2
ORDER BY DATA
Sempre retorna erros variados, às vezes diz que o campo nao
existe, outras diz unssigned code. e sei que o problema está na parte
da data porque se tirar a linha ele funciona.
Está tudo certo, sqlDataSet ligado no banco, banco ativo. sei lá... Alguém em ajuda?
SELECT SEQUENCIAL, DATA, VALOR, DESCRICAO, CLI, FORNEC, E_S
FROM CAIXA
WHERE SEQUENCIAL > 0
AND VALOR BETWEEN :VAL1 AND :VAL2
AND DESCRICAO LIKE :DESCRI
AND CLI = :CLIE
AND DATA >= :DATA1 AND DATA <= :DATA2
ORDER BY DATA
Jeans2002
Curtidas 0
Respostas
Anfm
03/05/2005
Como vc está passando os parâmetros da data?
Pois o formato do Interbase/Firebird é mm/dd/aa.
Talvez seja por isso.
Pois o formato do Interbase/Firebird é mm/dd/aa.
Talvez seja por isso.
GOSTEI 0
Vinicius2k
03/05/2005
Colega,
Por favor poste o trecho de código em que vc passa os parametros para o SQLDataSet. É *provável* que o problema esteja nos parametros de data.
Dependendo do banco de dados, o dbExpress pode intepretar as colunas do tipo Date como TSQLTimeStamp e DateTime serão sempre TSQLTimeStamp, independente do banco de dados, por isso são necessários alguns cuidados... duas formas:
Mude o tipo do parametro para ftTimeStamp e ao invés de utilizar AsDate ou AsDateTime, utilize Value informando uma data :
[b:c61c39c979]ou[/b:c61c39c979]
Acrestente a unit [b:c61c39c979]SqlTimSt[/b:c61c39c979] na lista de uses e utilize a função de conversão de DateTime para SQLTimeStamp :
Espero ter ajudado.
T+
Por favor poste o trecho de código em que vc passa os parametros para o SQLDataSet. É *provável* que o problema esteja nos parametros de data.
Dependendo do banco de dados, o dbExpress pode intepretar as colunas do tipo Date como TSQLTimeStamp e DateTime serão sempre TSQLTimeStamp, independente do banco de dados, por isso são necessários alguns cuidados... duas formas:
Mude o tipo do parametro para ftTimeStamp e ao invés de utilizar AsDate ou AsDateTime, utilize Value informando uma data :
with SQLDataSet1 do
begin
Close;
CommandText:= ´select * from <TABELA> where <CAMPO> between :P1 and :P2´;
{ **** }
ParamByName(´P1´).DataType := ftTimeStamp;
ParamByName(´P1´).Value := StrToDate(´03/05/2005´);
{ **** }
ParamByName(´P2´).DataType := ftTimeStamp;
ParamByName(´P2´).Value := StrToDate(´03/05/2005´);
{ **** }
Open;
end;[b:c61c39c979]ou[/b:c61c39c979]
Acrestente a unit [b:c61c39c979]SqlTimSt[/b:c61c39c979] na lista de uses e utilize a função de conversão de DateTime para SQLTimeStamp :
with SQLDataSet1 do
begin
Close;
CommandText:= ´select * from <TABELA> where <CAMPO> between :P1 and :P2´;
{ **** }
ParamByName(´P1´).AsSQLTimeStamp := DateTimeToSQLTimeStamp(Date);
{ **** }
ParamByName(´P2´).AsSQLTimeStamp := DateTimeToSQLTimeStamp(Date);
{ **** }
Open;
end;Espero ter ajudado.
T+
GOSTEI 0