Por que que quando eu estou cadastrando a conta funciona, e quando vou alterar uma conta (que é tudo igual só muda o sql) resulta esse erro?
java.sql.DataTruncation: Data truncation
at org.firebirdsql.jdbc.field.FBWorkaroundStringField.setString(FBWorkaroundStringField.java:97)
at org.firebirdsql.jdbc.AbstractPreparedStatement.setString(AbstractPreparedStatement.java:402)
at br.com.sisfinanceiro.planodecontas.PlanodecontasControle.alterarContas(PlanodecontasControle.java:112)
-----------------> Para eu cadastrar uma conta
…
String cadastraContas = "insert into tb_planodecontas (pk_cod_conta, descricao, natureza, tipo, dispo_imed, situacao) " +
“values (?,?,?,?,?,?)”;
…[code]
public void cadastrarContas(PlanodecontasValendo planodecontas){
try{
pstm = firebird.conectar().prepareStatement(cadastraContas);
pstm.setString(1, planodecontas.getCodigo());
pstm.setString(2, planodecontas.getDescricao());
pstm.setString(3, planodecontas.getNatureza());
pstm.setString(4, planodecontas.getTipo());
pstm.setString(5, planodecontas.getDisponivel());
pstm.setString(6, planodecontas.getSituacao());
pstm.executeUpdate();
firebird.desconectar();
}catch(Exception e){
e.printStackTrace();
}
}[/code]
...
...[code]
private void cadastrarContas(){
if (tfCodigoConta.getText().trim().equals("")) {
JOptionPane.showMessageDialog(this, "Informe o Código da Conta.");
tfCodigoConta.requestFocus();
} else if (tfDescricaoConta.getText().trim().equals("")) {
JOptionPane.showMessageDialog(this, "Informe a Descrição da Conta.");
tfDescricaoConta.requestFocus();
} else if (cbNatureza.getSelectedItem() == null) {
JOptionPane.showMessageDialog(this, "Informe a Natureza da Conta.");
cbNatureza.requestFocus();
} else if (cbTipo.getSelectedItem() == null) {
JOptionPane.showMessageDialog(this, "Informe o Tipo da Conta.");
cbTipo.requestFocus();
} else if (cbDisponibilidade.getSelectedItem() == null) {
JOptionPane.showMessageDialog(this, "Informe se a Conta representa um recurso Disponível Imediato.");
cbDisponibilidade.requestFocus();
} else {
PlanodecontasControle pc = new PlanodecontasControle();
PlanodecontasValendo planodecontas = new PlanodecontasValendo();
planodecontas.setCodigo(tfCodigoConta.getText());
planodecontas.setDescricao(tfDescricaoConta.getText());
planodecontas.setNatureza(cbNatureza.getSelectedItem().toString());
planodecontas.setTipo(cbTipo.getSelectedItem().toString());
planodecontas.setDisponivel(cbDisponibilidade.getSelectedItem().toString());
planodecontas.setSituacao(cbSituacao.getSelectedItem().toString());
pc.cadastrarContas(planodecontas);
JOptionPane.showMessageDialog(this, "Nova Conta incluída com sucesso.");
desabilitaCampos();
}
} [/code]
...
-------------> Para eu alterar uma conta
…
String alteraContas = “UPDATE TB_PLANODECONTAS SET PK_COD_CONTA = ?, DESCRICAO = ?, NATUREZA = ?, TIPO = ?, DISPO_IMED = ?,”
+ “SITUACAO = ? WHERE PK_COD_CONTA = ?”;
…
public void alterarContas(PlanodecontasValendo conta){
try{
pstm = firebird.conectar().prepareStatement(alteraContas);
pstm.setString(1, conta.getCodigo());
pstm.setString(2, conta.getDescricao());
pstm.setString(3, conta.getNatureza());
pstm.setString(4, conta.getTipo());
pstm.setString(5, conta.getDisponivel());
pstm.setString(6, conta.getSituacao());
pstm.setString(7, conta.getCodigo());
pstm.executeUpdate();
firebird.desconectar();
}
catch(Exception e){
e.printStackTrace();
}
}
…
private void alterarConta() {
PlanodecontasControle pl = new PlanodecontasControle();
PlanodecontasValendo planodecontas = new PlanodecontasValendo();
planodecontas.setCodigo(tfCodigoConta.getText());
planodecontas.setDescricao(tfDescricaoConta.getText());
planodecontas.setNatureza(cbNatureza.getSelectedItem().toString());
planodecontas.setTipo(cbTipo.getSelectedItem().toString());
planodecontas.setDisponivel(cbSituacao.getSelectedItem().toString());
planodecontas.setSituacao(cbSituacao.getSelectedItem().toString());
planodecontas.setSequencia(Integer.parseInt(tfSeq.getText().trim()));
pl.alterarContas(planodecontas);
JOptionPane.showMessageDialog(this, "Conta alterada com sucesso.");
desabilitaCampos();
}