Problema com PreparedStatement (Conversão de tipos)

Bom dia galera!!

Estou com um problema na seguinte linha do meu Insert em um PreparedStatement:

psInsert.setDate(3, (Date)(dpDadosProponente.getDataNascimentoProponente().getTime()));

onde: getDataNascimentoProponente() retorna um Calendar, e o Date q estou usando para casting é o java.sql.Date.

está ocorrendo ClassCastException.

Estou utilizando DB2.

Se alguem souber uma saída eu agradeço.

valeu!!

O Calendar não é um filho de Date, portanto, não tem como fazer um cast.

Tente fazer:

psInsert.setDate(3, 
   new Date(dpDadosProponente.getDataNascimentoProponente().getTime()));

tente com java.util.Date

A assinatura do setDate exige um java.sql.Date mesmo. O problema está em fazer o cast, quando na verdade ele deveria criar um novo objeto.

Pegue através do Timestamp :

//Buscar

Timestamp tm = rs.getTimeStamp("Data");

Calendar cal = Calendar.getInstance();

cal.setTimeInMillis(tm.getTime);

// Gravar

pstmt.setTimeStamp(3 , new Timestamp(cal.getTimeInMillis()));

ViniGodoy, tem como vc colocar o codigo q vc colocou na 1ª resposta denovo? pq nao está aparecendo aki, ta so a barra de rolagem.

abraco!!

valeu!!!

Kra consegui copiar o codigo, mas nao funcionou nao… valeu assim mesmo

ramilani12, o jeito q vc me passou eu nao testei, mas o kra q pediu pra eu fazer esse codigo pediu pra eu nao fazer assim…

valeu assim mesmo :stuck_out_tongue:

Por que não funcionou? A data ficou errada ou deu erro?

[quote=andrerios]ViniGodoy, tem como vc colocar o codigo q vc colocou na 1ª resposta denovo? pq nao está aparecendo aki, ta so a barra de rolagem.

abraco!!

valeu!!![/quote]

Tá vendo? É o que eu já comentei em outros posts. Se a tag [code] for colocada numa linha só não dá pra ver nada, só a barra de rolageml horizontal. O único jeito de visualizar o que postaram é editar o código fonte.

Se a data ficou errada tente:

[code]
Calendar nasc = dpDadosProponente.getDataNascimentoProponente();

psInsert.setDate(3, new Date(
nasc.get(Calendar.YEAR),
nasc.get(Calendar.MONTH),
nasc.get(Calendar.DAY_OF_MONTH)));[/code]

Eu confundi no método também era para ser:

psInsert.setDate(3, new Date(dpDadosProponente.getDataNascimentoProponente().getTimeInMillis()));

Lembrando que o Date aqui também se refere ao java.sql.Date.

[quote=andrerios]ramilani12, o jeito q vc me passou eu nao testei, mas o kra q pediu pra eu fazer esse codigo pediu pra eu nao fazer assim…

valeu assim mesmo :P[/quote]

e há um motivo?

ramilani12: tb nao entendi o pq nao, mas blz… coisas dele :stuck_out_tongue: