Boa tarde a todos.
Estou trabalhando com JDBC e SQL SERVER 2008, e estou tentando armazenar os dados do contato de um artesão,
porém estou tendo dificuldades de conseguir pegar a foreign key da tabela ‘contato’, não sei exatamente ql referência que devo usar na query e tentei usar SCOPE_IDENTITY())… Não sei se é a correta.
Na tabela de ‘artesão’ eu defini a primary key ‘IdArtesao’ como identity, pelo que sei ele deveria levar o mesmo valor de primary key quando é referênciado na tabela ‘contato’ como foreign key, porém quando tento inserir ocorre o seguinte erro.
“Erro: Cannot insert the value NULL into column ‘idArtesao’, table ‘Artesanato.dbo.contato’; column does not allow nulls. INSERT fails.”
Lembrando que o cadastro do artesão apenas, ocorre normalmente.
Abaixo segue o código:
[code]public void inserirArtesao (Artesao art) throws Exception {
abrirConexao();
stmt = conn.prepareStatement("INSERT INTO artesao VALUES (?,?,?,?)");
stmt.setString(1, art.getPAB());
stmt.setString(2, art.getNome());
stmt.setString(3, cd.converterDataParaString(art.getDataNascimento()));
stmt.setBoolean(4, art.getSexo());
stmt.execute();
stmt.close();
//stmt = conn.prepareStatement("INSERT INTO contato VALUES (?,?,?,?)");
stmt = conn.prepareStatement("INSERT INTO contato VALUES (?,?,?,?,SCOPE_IDENTITY())");
stmt.setString(1,art.getContato().getEmail());
stmt.setString(2,art.getContato().getTelefone());
stmt.setString(3,art.getContato().getCelular());
stmt.setString(4,art.getContato().getObservacao());
stmt.execute();
stmt.close();
fecharConexao();
}[/code]