eu testei isso no firebird, e funcionou:
sendo os atributos INT, INT, DATE, TIME, FLOAT respectivamente.
entao, no meu codigo, fiz:
ps = dbc.con.prepareStatement( "INSERT INTO CAIXA VALUES (GEN_ID( CAIXA_ID, 1 ), ?, ?, ?, ? )");
ps.setInt(1, 1);
ps.setObject(2, "CURRENT_DATE", Types.DATE);
ps.setObject(3, "CURRENT_TIME", Types.TIME);
ps.setObject(4, this.total);
ps.executeUpdate();
Isso me da o seguinte erro:
java.sql.SQLException: Unexpected Exception:null
ja tinha testando essa inclusao antes, sem a data e a hora, e funciona, entaoa credito que o problema esta nas linhas em que passo current_time e current_date. Ja tentei tb ps.setDate, e ps.setTime. Alguém consegue vizualizar o que está errado?
Opa,
continue usando o setDate só que como você quer o tempo atual use o seguinte código:
java.util.Date dataAtual = new java.util.Date();
java.sql.Date data = new java.sql.Date(d.getTime());
ps.setDate(x, data);
:okok:
Na realidade, eu precisaria da Data de hora, e da hora atual, e o metodo java.util.Date.getTime() retorna um valor em milissegundos. Isso nao serviria pra mim.
Na realidade, eu precisaria da data e da hora atual, e o metodo java.util.Date.getTime() retorna um valor em milissegundos. Isso nao serviria pra mim. Eu chego na data e na hora atual, através de subclasses da classe Date, como a DateFormat e SimpleDateFormat por exemplo, não que esse tipo de dados nao eh aceito pelo metodo setDate do preparedStatement
isso me resolveu o problema:
ps = dbc.con.prepareStatement( "INSERT INTO CAIXA VALUES ( GEN_ID( CAIXA_ID, 1 ), ?, CURRENT_DATE, CURRENT_TIME, ? )");
ps.setInt(1, 1);
ps.setObject(2, this.total);
ps.executeUpdate();
apenas passei os comandos para dentro do prepareStatement()
Agora eu pergunto, nao da pra passar instrucoes SQL via setObject? Pelo que eu li, dá. Vejam:
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html#setObject(int,%20java.lang.Object,%20int)
alguém já usou isso?