Problema com resultset no oracle [RESOLVIDO]

6 respostas
leandro-maanaim
Pessoal olha só como que ficou meu codigo
public void inserirTag()
    {
         
         try
         {
              conecta.executaSQL("select * from TabelaDeTag");
              conecta.resultset.last();
              String n = conecta.resultset.getString("Tag"); //Ou seja n ta guardando o ultimo valor de Tag num é isso? .Tudo bem...
              conecta.executaSQL("select * from cadastros where Codigo = '"+codigo.getText()+"'");
              conecta.resultset.first();
              String m = conecta.resultset.getString("Codigo"); //Ou seja m ta guardando o ultimo valor de Codigo num é isso tambem? .Tudo bem...

              conecta.executaSQL("select * from cadastros where Codigo = "+m+"");
              conecta.resultset.first();//Aqui que ta minha duvida . o meu sesultset deveria armazenar somente a minha linha de codigo 2 por exemplo ne isso nao? pq quando eu dou o meu updade ele modifica todas as minhas tags, ou seja era pra mudar somente a minha tag da linha onde ta o codigo 2 né nao pessoal?
              String sql = "UPDATE Cadastros SET Tag = '"+n+m+"'";
              conecta.statement.executeUpdate(sql);
              trataErro();
              JOptionPane.showMessageDialog(null,"Alterado");
         }
         catch(SQLException erro)
         {
              JOptionPane.showMessageDialog(null,"Não Alterado");
         }
    }
Pessoal desculpe por postar varios topicos é pq to dezisperado preciso entregar esse trabalho semana que vem e estou loko com isso. outra coisa como que eu faço para armazenar somente uma linha no meu resultset com o mesmo codigo que eu tenho no meu formulario?

select * from cadastros where codigo = "+codigoDaTabela.getText()+" ficaria assim mesmo ? pq se for ja tentei isso um milhão de veses e nao deu certo, pq quando eu mando mudar um valor dessa linha muda tb de todas as outras linhas :( .

6 Respostas

fabiozoroastro

Cara, ficou muito confuso o seu post.
Você está afirmando e perguntando a mesma coisa, daí eu não consegui entender sua dúvida.
:slight_smile:

leandro-maanaim

cara fico mesmo pq olha só pra resulmir como que eu atualizo uma linha de codigo no banco? pq select * from cadastros where codigo = “+codigoDaTabela.getText()+” nao funciona, ele ta atualizando todas as colunas. entedeu?

pmlm

O SELECT * funciona bem e ele só devolve a coluna com o código indicado.
O UPDATE é que não funciona porque não estás a indicar a condição de WHERE e então vai actualizar todas as linhas.

fabiozoroastro

O select com a cláusula where vai trazer apenas o(s) registro(s) que atende à restrição informada.
No seu sql de atualização você está executando um UPDATE sem colocar nada na cláusula where. Você percebeu isso?

Veja:

String sql = "UPDATE Cadastros SET Tag = '"+n+m+"'";

Não seria?

String sql = "UPDATE Cadastros SET Tag = '"+n+m+"' where campo1 = 'ABC' ";
nel

Bom dia.

Além do que o fabio disse, usar o ‘’ não funciona, não pelo o que me lembro. Altere o '’ para os campos que deseja que o select retorne a você, ou seja:

//tabela e colunas apenas para exemplo Select nome, idade from pessoas

Outro detalhe: conecta.executaSQL("select * from cadastros where Codigo = '"+codigo.getText()+"'");
Não há necessidade de usar aspas simples, basta concatenar diretamente:

conecta.executaSQL("select codigo from cadastros where codigo = "+codigo.getText());

Faça as alterações e veja no que vai dar.
Abraços.

leandro-maanaim

Opa…Legal pessoal funcionou perfeitamente. vlw abraços

Criado 6 de novembro de 2009
Ultima resposta 6 de nov. de 2009
Respostas 6
Participantes 4