[DUVIDA] Select e depois Insert no BD

7 respostas
cleriton

Opa pessoal olha eu de novo com minhas duvidas xD

Bom estou fazendo um select no banco e com a informação q estou pegando quero ja fazer um insert...

Oq esta errado ai pessoal ???

try{
     //Registrando o driver:   
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");    
     //Estabelecendo a conexão através do ODBC criado no Painel de Controle:   
     con = DriverManager.getConnection("jdbc:odbc:SQLEXPRESS2005","","");   
     //Criando um objeto Statement para enviar requisições SQL para o Banco de Dados    
     stmt = con.createStatement(); 
     //Executando SQL: 
     ResultSet rs = stmt.executeQuery("select Cd_Area from AREA where Nome_Area = '"+item+"'");                     
     rs.next();
                                                                  
     area = (rs.getString("Cd_Area"));
                                                                        
     sql = "insert CAND_AREA (Cd_Candidato, Cd_Area) values ("+Integer.parseInt(txt_codigo.getText())+","+Integer.parseInt(area)+")";                                                                                              
     
     stmt.executeUpdate(sql);
                                                                        
}//FIM TRY CONEXAO
catch(ClassNotFoundException ERRO){
     JOptionPane.showMessageDialog(null, "ERRO ao Carregar JDBC-ODBC");
}
//FIM TRY CADASTRO NAO ENCONTRADO - CAI NO CATCH
catch(SQLException ERRO) {
     JOptionPane.showMessageDialog(null, "Cadastro não encontrado meah","Erro",JOptionPane.ERROR_MESSAGE);
}
ValeuUUu

Abrasss a todos :wink:

7 Respostas

shoko

qual o erro que está ocorrendo?

cleriton

Da um erro no:

stmt.executeUpdate(sql);

e vai direto para o segundo catch…

X

olha a linha 14:

insert CAND_AREA (Cd_Candidato, Cd_Area) values ("+Integer.parseInt(txt_codigo.getText())+","+Integer.parseInt(area)+")";

faltou o INTO

insert into CAND_AREA (Cd_Candidato, Cd_Area) values ("+Integer.parseInt(txt_codigo.getText())+","+Integer.parseInt(area)+")";
e essa conversao para int não é necessária… da uma analisada geral nesse seu código…

cleriton

mesmo assim nao funcionou :frowning:

Não sei oq fazer mais =/

Valeu ai por tentarem ajudar .o/

X

posta o erro cara…

e se puder usa um preparedstatement, bem melhor…

shoko

utilize coringas ao invés de concatenações cara fica muito melhor o código da query.

caso voce queira fazer um update verifica as constraints do seu banco primeiro e utilize a clausula update fica mais bonito.

tente utilizar a query update tabela set camp = valordesejado

segue um exemplo de uma query que eu fiz

PreparedStatement stmt = this.connection .prepareStatement("insert into contatos(nome, email, endereco)values(?,?,?)"); // Insere os dados o primeiro campo eh o valor do coringa(INDEX) e o // segundo o que deseja colocar no coringa stmt.setString(1, contato.getNome()); stmt.setString(2, contato.getEmail()); stmt.setString(3, contato.getEndereco()); // executa o comando e em seguida fexa a conexão stmt.execute(); stmt.close();

cleriton

Valeu pela dica galera…

Eu consegui resolver aqui :-o

Abrasss a todos

E brigadao msm pela ajuda :wink:

Criado 24 de julho de 2008
Ultima resposta 24 de jul. de 2008
Respostas 7
Participantes 3