Como inserir (') apostrofos no banco

7 respostas
P

Exemplo:
String s = Pedra D’ Água;

Banco:
Marca varchar(35)

Quando tento inserir essa string no banco da erro;

Como resolver essa situaçao?

O banco é Postgres.

7 Respostas

L

vc tem q duplicar ao inves de ’ tem que ser ‘’

String s = "Pedra D'' Água";

G

utilize PreparedStatement.

P

ganondorfan

Eu estou usando o PreparedStatement!

Mas me da um exemplo ai pra ve se eu to fazendo certo.

leonardobhbr
E no caso de duplicar os apostrofos tenho que transformar a string em um vetor de char procurar o apostrofo e duplicalo? É isso?

G

Posta o codigo que gera o erro e o erro , para analisarmos.

P
public void inserir(Cliente cli) throws ClassNotFoundException, SQLException {
        conectar = new Conexao();
        cidade = cli.getCidade();
            Class.forName(conectar.driver);
            con = (Connection) DriverManager.getConnection(conectar.url, conectar.user, conectar.senha);
            prepstm = con.prepareStatement("insert into Cliente(cidade) values('" + cidade + "')");
            prepstm.execute();
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Descrição do erro: " + e + "", "Erro!", JOptionPane.ERROR_MESSAGE);
             Logger.getLogger(ClienteDAL.class.getName()).log(Level.SEVERE,null,ex);
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Descrição do erro: " + e + "", "Erro!", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
        }

    }

Ex: Quando tento inserir o nome da minha cidade Itapejara D' Oeste ja da erro:
[color=red]
org.postgresql.util.PSQLException: ERRO: erro de sintaxe em ou próximo a "Oeste"[/color]

G

Voce esta usando PreparedStatement, mas não ta usando os poderes dele :smiley:

prepstm = con.prepareStatement("insert into Cliente(cidade) values(?)");  //utilize o placeHolder para deixar ele fazer o parse pra voce
prepstm.setString(1,cidade); // estou supondo que cidade seja tipada como String 
prepstm.executeUpdade();

Tenta aí e vê se funciona

P

:smiley:
Valeu cara funciono!
Brigadão!!!

Criado 10 de janeiro de 2011
Ultima resposta 11 de jan. de 2011
Respostas 7
Participantes 3