Fórum Que erro é esse? #347400

16/10/2007

0

Que tipo de erro é esse?

ORA-01840: valor de entrada não é longo o suficiente para formato de data.


Tipo assim:
Cds.Close;
Cds.CommandText := ´select campo1,campodata from tabela where campo1 = :parametro1 and campodata =:parametro2´

Parametro2 é string e campodata Date. O erro é no campodata(Parametro2).


Paulo

Paulo

Responder

Posts

16/10/2007

Massuda

Qual o valor de parametro1 e parametro2 quando falha?


Responder

Gostei + 0

16/10/2007

Paulo

No caso acima foi apenas um exemplo hipotético, mas o erro acontece assim:

select campodata from tabela
where campodata =:dt1

cds.params[0].asstring := FUNCAOCONVERTEDATA(StrToDate(variavel));

O valor da variavel é: [color=red:20610057c3]´15/02/2007´[/color:20610057c3]

Essa função converte a data para uma string já no formato do banco.


Responder

Gostei + 0

16/10/2007

Marco Salles

cds.params[0].asstring := FUNCAOCONVERTEDATA(StrToDate(variavel)); O valor da variavel é: ´15/02/2007´ Essa função converte a data para uma string já no formato do banco.


hummmm , pq não simplesmente : :?: :?:

cds.params[0].asstring := variavel; 



Responder

Gostei + 0

17/10/2007

Paulo

Poruqe a funcao convertedata, já coloca a data no formato do banco como eu falei anteriormente.


Responder

Gostei + 0

17/10/2007

Fknyght

Tenta fazer deste jeito

cds.params[0].ASDATE := StrToDate(variavel);

Dessa forma, não importa como o banco trata a data ela e automaticamente convertida


Responder

Gostei + 0

17/10/2007

Paulo

Acabei de descobrir o problema. Meu chefe ele trabalha de uma forma diferente da minha, ex: Eu costumo colocar o nome dos parâmetros identicos aos campos e ele acha assim confuso e prefere colocar P1,P2 e etc... Acontece que sem ele falar comigo, ele inverteu a ordem de um parametro. Como aconteceu? Na minha máquina estava ok, mas quando eu mandei para ele as minhas alterações, ele pega então e compila tudo no servidor. Ele então modificou e rodou. Deu o erro e passou pra mim sem me dizer o que havia feito. Vi o erro, tentei resolver na máquina dele. Como ele me disse que não havia alterado nada, me concentrei na procedure onde aparecia o erro, mas sem olhar para uma outra em outra unit onde a query era montada, achando que o problema poderia estar no banco. Aprendi uma coisa: [color=red:e2c21258f5]Nuna acredite em seu chefe quando ele diz que não mexeu em nada.[/color:e2c21258f5]


Responder

Gostei + 0

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

Aceitar