Erro ao tentar gravar dados no Firebird

Olá amigos.

Estou iniciando em JAVA e é a primeira vez que acesso este fórum.

Estou desenvolvendo um cadastro de alunos com NetBeans+Java+Firebird e já consegui a conexão e elaborei um formulário.

Contudo ao clicar no botão com o código SQL para gravar os dados no banco aparece uma message box com o seguinte texto:

Erro ao tentar gravar o registro…org.firebirdSQL.jdbc.FBSQLException: GDS Exception. 335544347. validation error for column COD, value “null””

Tenho o campo COD, porém, eu o defini como auto incremento o não estou utilizando-o no INSERT.

Como faço para resolver isto?

Abraços.

Codigo do botão gravar no formulário de cadastro do alunos:

private void bt_gravarActionPerformed(java.awt.event.ActionEvent evt) {

try
{
    
     String sqlinsert ="insert into alunos (nome,matricula,empresa,data,turma,nota,evento) values ('"+
                 txt_nome.getText()+"','"+
                 txt_matricula.getText()+"','"+
                 cb_empresa.getSelectedItem()+"','"+
                 txt_data.getText()+"','"+
                 txt_turma.getText()+"','"+
                 cb_nota.getSelectedItem()+"','"+
                 cb_evento.getSelectedItem()+"')";
con_alunos.statement.executeUpdate(sqlinsert);         
    JOptionPane.showMessageDialog(null,"Gravação realizado com sucesso!");
   
   con_alunos.executeSQL("select * from alunos");
   con_alunos.resultset.first(); //posiciona no primeiro registro
   mostrar_dados(); //irá chamar a função em que irá mstrar os dados no form
}
 
 catch (SQLException erro)
 {
JOptionPane.showMessageDialog(null,"Erro a tentar Gravar o registro..."+erro);
 }                                         

}

tenta usar PreparedStatement fica muito mais facil de de controlar

EX.:

PreparedStatement psInserirCid = con.prepareStatement
                    ("insert into cidade(Cod_Estado,Nome_Cidade, Obs_Cidade) values(?,?,?);");
           
             
            
            psInserirCid.setInt(1 ,estado.getCodigo());
            psInserirCid.setString(2, nome_cid);
            psInserirCid.setString(3, obs_cid);
            psInserirCid.executeUpdate();

ahh

pelo q eu sei firebird nao tem autoincremento.

vc ta usando trigger ou om generator??

alguma coisa do genero parecido a isso ??

create generator gen_produto;

set term !!;
   create trigger Tproduto for produto
      before insert
      position 0

      as

      begin

               new.cod_produto=gen_id(gen_produto,1);

      end !!
set term; !!

Não entendo muito bem. Mas criei a tabela com auto incremento no IBexpert.

ow vc cria uma trigger ou um generator.

pode ser por isso q nao ta funcionando, ele nao ta inserindo o codigo, pq nao tem autoincremento, nao no firebird q conheço.

http://ftp.unipar.br/~izabel/

baixe o arquivo “ARQUIVO.PTT”

la vc acha algumas coisas interessantes

Olá Rafael.

Muito obrigado pela dica. Já baixei o arquivo. Agora vou estudar.

Depois comento no que deu.

Grande abraço.