Oi André, Oi Lista.
O erro é devido ao comando SQL.
De acordo com o padrão do SQL, para alterar um registro da tabela é
necessario acrescentar a cláusula WHERE. Do contrário, todos os registros
serão alterados.
Aqui temos um problema, pois a alteração está dentro de um laço while
Acho que deve ser feita a seguinte alteração dentro do laço, usando a chave
primária:
PreparedStatement st1 = con.prepareStatement("UPDATE
AtendimentoDados SET Telefone = ? where chaveprimaria = ?");
st1.setString(1,atualiza(rs.getString("Telefone")));
st1.setString(2,rs.getInt("chaveprimaria"));
st1.executeQuery();
Agora algumas dúvidas, pois não tenho experiência com java:
1. O comando do PrepareStatement deve ficar fora do loop?
2. O segundo setString deve ser setInt?
Até mais,
Augusto
PS: Cuidado, pois o comando delete segue o mesmo esquema do update
>From: Andre Zimowski Perevalo <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>Subject: RES: [SouJava-J] Alterar dados ! ! ! !
>Date: Fri, 4 Feb 2000 11:17:03 -0300
>
>Olá recebi as respostas a minha pergunta referente a atualização de um
>campo
>de determinada tabela.
>
>Acontece que est3e código que usei está deixando todos os registros deste
>campo "Telefone' iguais.
>
>Estou enviando o código e se alguém puder me ajudar, agradeço
>
>Atenciosamente,
>
>
>André
>
>
>
>import java.util.*;
>import java.net.URL;
>import java.sql.*;
>import java.io.*;
>
>class teste
>{
> static DataInputStream in = new DataInputStream(System.in);
> public static void main(String argv[])throws IOException
> {
> try
> {
>
>
> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
> Connection
>con=DriverManager.getConnection("jdbc:odbc:BancoAtendimento","","");
> System.out.println();
> System.out.println("Estabelecida conexao com o BD.");
> Statement st = con.createStatement();
> ResultSet rs = st.executeQuery("select Telefone from
>AtendimentoDados");
>
> while (rs.next())
> {
> PreparedStatement st1 = con.prepareStatement("UPDATE
>AtendimentoDados SET Telefone = ?");
> st1.setString(1,atualiza(rs.getString("Telefone")));
> st1.executeQuery();
> }
> st.close();
> con.close();
> }
> catch(Exception e)
> {
> System.out.println("Erro");
> System.out.println(e.getMessage());
> in.readLine();
> }
> }
>
> public static String atualiza(String numReal)
> {
> System.out.println(numReal);
> String numMod = "";
>
> numMod = numReal.substring(2);
>
> return numMod;
>
> }
>}
>
> >-----Mensagem original-----
> >De: Jos Augusto Cintra [mailto:[EMAIL PROTECTED]]
> >Enviada em: Sexta-feira, 4 de Fevereiro de 2000 7:52
> >Para: [EMAIL PROTECTED]
> >Assunto: Re: [SouJava-J] Alterar dados ! ! ! !
> >
> >
> >Uma das maneiras de se fazer a conexão com o Access é através
> >do JDBC com o
> >driver padrão JDBC ODBC que vem com o pacote Java 2.
> >Nesse caso você deve criar na máquina cliente uma DSN para o
> >ODBC através do
> >painel de controle.
> >Depois faça um teste com o seguinte trecho de programa que
> >lista uma tabela.
> >Esse trecho serve para qualquer banco de dados que suporte ODBC.
> >
> >----------------------------------------------------------------------
> >import java.util.*;
> >import java.net.URL;
> >import java.sql.*;
> >
> >/*
> >Lista uma tabela de uma banco com suporte para ODBC
> >Supoe-se que a tabela tenha 2 campos: codigo (inteiro) e
> >descricao (texto)
> >*/
> >
> >class testers
> > {
> > public static void main(String argv[])
> > {
> > try
> > {
> > Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
> > Connection
> >con=DriverManager.getConnection("jdbc:odbc:minhadsn","login","senha");
> > System.out.println();
> > System.out.println("Estabelecida conexao com o BD.");
> > Statement st = con.createStatement();
> > ResultSet rs = st.executeQuery("select * from minhatabela");
> > while (rs.next())
> > {
> > System.out.println (rs.getInt("codigo")+"
> >"+rs.getString("descricao"));
> > }
> > st.close();
> > con.close();
> > }
> > catch(Exception e)
> > {
> > System.out.println("Erro");
> > System.out.println(e.getMessage());
> > }
> > }
> > }
> >
> >----------------------------------------------------------------------
> >Esse driver padrão possui algumas limitações. Se preferir,
> >pode usar outros
> >(existe uma lista deles no site da sun).
> >Um driver interessante, escrito em java/RMI está em
> >
> >http://dyade.inrialpes.fr/mediation/download/RmiJdbc/RmiJdbc.html
> >
> >Este tem a vantagem de ser grátis.
> >
> >
> >Até mais,
> >
> >
> >Augusto
> >
> >>From: Andre Zimowski Perevalo <[EMAIL PROTECTED]>
> >>Reply-To: [EMAIL PROTECTED]
> >>To: Java-List (Correio eletrônico) <[EMAIL PROTECTED]>
> >>Subject: [SouJava-J] Alterar dados ! ! ! !
> >>Date: Thu, 3 Feb 2000 16:34:51 -0300
> >>
> >>Olá amigos !!!
> >>Sou iniciante em Java e tenho a seguinte duvida.
> >>
> >>Tenho um banco de dados Access e em uma de minhas tabelas
> >tenho um campo
> >>telefone.
> >>Este compo telefone esta assim: por exemplo :
> >>413676619
> >>413202326
> >>.
> >>.
> >>.
> >>entendem, esta com o prefixo concatenado.
> >>Preciso Conectar o Banco de Dados na minha aplicação para que eu possa
> >>atualizar este campo. Eu não si como fazer isso....preciso
> >somente conectar
> >>o Banco e preparar a instrução.
> >>Se alguém tiver um exemplo de conexão do Java com Access e
> >agradeceria .
> >>
> >>Atenciosamente,
> >>
> >>André
> >>
> >> --------------------------- LISTA SOUJAVA
> >---------------------------
> >> http://www.soujava.org.br - Sociedade de Usuários Java
> >da Sucesu-SP
> >> [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
> >> [para sair da lista:
>http://www.soujava.org.br/forum/cadastrados.htm]
> >
>---------------------------------------------------------------------
> >
>
>______________________________________________________
>Get Your Private, Free Email at http://www.hotmail.com
>
> --------------------------- LISTA SOUJAVA ---------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
> [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
> ---------------------------------------------------------------------
>
> --------------------------- LISTA SOUJAVA ---------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
> [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
> ---------------------------------------------------------------------
>
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
[dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------