Insert com campo data

9 respostas
Z

falaê, pessoas.

tenho uma tabela em um BD Oracle 8i.
Nessa tabela tenho um campo tipo Date.
Em minha aplicação java, tenho um JTextField onde é digitada uma data, supostamente correta.
No meu select tenho:
UPDATE TABELA SET CAMPO_DATA = JTextField.getText();

No entanto, obtenho um erro dizendo que o tipo esperado é Date.
PERGUNTA:
Como converter a string para Date e formar o comando SQL correto?

Phalow.

9 Respostas

J

Use um PreparedStatement que o driver vai fazer isso pra você...

PreparedStatement stmt = conexao.prepareStatement("UPDATE tabela SET campo_date=?");

SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
Date data = formatador.parse(textfield.getText());

stmt.setDate(1, new java.sql.Date(data.getTime()));
Z

Valeu, aê.

vou testar…
no erro, posto de volta.

té +

Z

acho que naum era bem isso.
na verdade meu código está mais ou menos assim:

A conexão foi estabelecida normalmente em outra classe

String q = "UPDATE tabela SET "    +
campo_data1  = JTextField1.getText() + "," +
campo_data2  = JTextField2.getText() + "," +
campo_data3  = JTextField3.getText() + "," +
campo_texto1 = JTextField4.getText() + "," +
campo_texto2 = JTextField5.getTex();

try {
int salvou = conn.stmt.executeUpdate( q );
if (foiBem == 1) {
   System.out.println("Salvou tudo");
} else {
   System.out.println("NÃO Salvou!");
}
}
catch {SQLException sqlex ) { sqlex.printStackTrace(); }
O problema persiste. Alguma dica?

Valew.

G

O exemplo mostrado pelo nosso colega jairelton está correto, no entanto, não o observei em seu código!!!

Z

Testei o código postado pelo colega, mas, sem sucesso.
o código que postei, é o meu original.
A intenção foi informar o que eu estava tentando fazer.

Que tal postar alguma coisa observando meu código?

Valeu pela força.

J

Mas como você fez e qual foi o problema?

Z

Beleza, funcionou.

fiz como sugerido:

Mas agora tenho outro problema:

  • Como inserir um valor nulo em um campo do tipo Date?

Isso é para a hipótese de o usuário escolher não entrar com nenhuma data.

Valew.

J
Z

Valeu, Jair Elton.

.

Criado 31 de março de 2006
Ultima resposta 31 de mar. de 2006
Respostas 9
Participantes 3