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.