Gravar Data em um JDBC

Ola pessoal
no meu formulario eu tenho um JFormatterTextField com mascara pra data… uso BD interbase e para gravar as informações uso o preparedStatement… o problema esta para gravar a Data…

tentei

query.setString(txtData.getText());

da erro na hora de gravar…

transformei pra data o campo txtData
Date data = Date.valueOf(txtData.getText());
até aqui tudo bem

tentei query.setDate(data);
mas nao existe o setDate, apenas no ResultSet existe o getDate

vcs que trabalham profissionalmente com Java poderia me ajudar?

Obrigado

INSERT INTO ....
VALUES (?,?,TO_DATE(?, 'DD/MM/YYYY HH24:MI:SS'),?)
.
.
.
pstmt.setString(3,suaString);

Nesse exemplo que eu coloquei insere uma String direto, nem precisar transforma-la em Date.

[]´s

Ola Thiago

eu tentei por o TO_DATE…
mas quando executo da o seguinte erro

Function unknow
TO_DATE

estou utilizando o Interclient, será que nele não existe?
preciso importar alguma classe além da java.sql.*?

Valeu

Faça o teste import java.util.Date; e rode seu programa!!!

Cara pode ser que nao existe, nao tenho certeza, eu uso o Oracle e nunca tive esse problema!
O interbase deve ter uma função que faça a mesma coisa que a TO_DATE do Oracle! Da um pesquisada!

acho que no caso nem precisa importar a classe Date, afinal essa será a string sql que será executada pelo Banco.

[]´s

o java.util.Date nao deu certo

será que nao tem ninguem aqui que programe com o interclient?

oracle nao da pra mim usar, meus clientes nunca pagariam por um banco de dados… dificl pagar pelo software

ae
deu certo, mas fiz o seguinte
gravei com o formato yyyy-mm-dd

agora só usar a SimpleDateFormat pra arrumar esse formato…

pra quem esta com o mesmo problema ae vai a dica…

valeu pela ajuda de voces

Pois é o IB não possui a função toDate.
Para passar formato de data via string, o melhor é vc usar mesmo o formato yyyy-mm-dd.

Agora, deveria funcionar o seguinte

java.sql.Date date = …

preparedStatement.setDate(1, date);

Note que Data é java.sql.date e não java.util.date.

Ola Elvis

eu tb achei de deveria ter o setDate, pois a classe ResultSet possui o método getDate, mas infelismente a PreparedStatement não possui método setDate.

Resolvi o problema realmente usando o SimpleDateFormat colocando formato yyyy-mm-dd e funcionou.
criei um método que retorna uma String com esse formato, passo uma String do modo que o usuaria digitou no caso dd-mm-yyyy e retorno uma string yyyy-mm-dd e gravo usando o .setString.