Pessoaléoseguinteeutenhoqbuscaroultimovalorinseridonobanco(paraissoestouusandooMax)edepoisqtenhoestainformaçãoeucadastroemoutratabela.Estádandoerronahoradecadastrarnobanco.Estouiniciandoosmeusestudos,desculkpesefizalgodeerrado:Código:// fiz um método para selecionar e depois fruto do valor eu cadastro em outra tabelapublicvoidinsertCruzamento(Apsbean){try{StringSQL2=“selectmax(COD_APS)fromAPS”;Connectionconn1=newConexao().getConexao();PreparedStatementps1=conn1.prepareStatement(SQL2);ResultSetrs=ps1.executeQuery();intcodigo=rs.getInt(1);//acho q o erro está aqui
Stringsql="insert into APSPROCED(COD_PROCEDIMENTO, COD_APS) values(?, ? )";Connectionconn=newConexao().getConexao();PreparedStatementps=conn.prepareStatement(sql);//preparaps.setInt(1,bean.getcodProcedimento());ps.setInt(2,codigo);ps.execute();JOptionPane.showMessageDialog(null,"APS cadastrado com sucesso!");}catch(Exceptione){//e.printStackTrace();JOptionPane.showMessageDialog(null,"APS não cadastrada!","ERRO!",JOptionPane.ERROR_MESSAGE);}}
Primeira coisa, qual a mensagem de erro? De preferência cole a stacktrace.
Deixa eu ver se entendi seu problema:
Em algum ponto do sistema o usuário inclui um item A na tabela A. Com o código do item A você inclui um item B que tem uma Foreign key para o item A?
C
couto.junior
Ok!!
é isso mesmo!!! Eu cadastro os dados de uma guia e depois eu recupero o seu código (estou usando autoincrement) para cadastar em outra tabela o cod de procedimentos q estão inseridos em uma tabela. ficou meio confuso?
O programa está compilando porém não está cadastrando.
grprado
Pelo que entendi não dá nenhuma exception. O sistema simplesmente não grava no banco?
Revendo seu código, notei que você usa ps.execute numa clausula insert. Em insert, update e delete é melhor usar ps.executeUpdate() ao invés de ps.execute();
A conexão está com autocommit true ou false? Por que se estiver false você precisa fazer o commit para que ele persista no banco.
Outra coisa, você cadastra uma guia que contem vários códigos de procedimento, certo? Isso significa que se der problema enquanto você estiver salvando os procedimentos você não deveria nem gravar a guia.
É melhor você usar uma transação(porcamente explicando, um connection.setAutocommit(false); inicia uma transação ) e usar a mesma connection que cria a guia na que cria os procedimentos da guia, dando um connection.commit() depois de inserir todos os procedimentos.
fredferrao
falta isso:
ResultSetrs=ps1.executeQuery();rs.next()//tafaltanndoumnext()aquiintcodigo=rs.getInt(1);//acho q o erro está aqui