Registros do Interbase com acentos

5 respostas
A

Estou com um problema que não consigo resolver, estou tentando fazer uma simples listagem do conteudo de uma tabela em Interbase, só que quando tento listar o conteúdo que possui acentos é gerado um erro. O conteúdo que é integer ou string sem acentos ele lista, mas se a tabele tiver algum registro acentuado ela apresenta o erro.
Alguem sabe como posso fazer com que seja aceito acentos?

abaixo colocarei o código que estou usando

try {

con = DriverManager.getConnection( ConexaoBanco, user, pass);

verificaAlerta(con.getWarnings(), Alerta);

stmt = (Statement) con.createStatement();

rs = (ResultSet) stmt.executeQuery(SQL);

} catch (SQLException e) {

verificaExcessao(e, Captura de Excessão da Conexão1);

}
try {

while (rs.next()) {

System.out.println(rs.getString(2));

}

} catch (SQLException e2) {

verificaExcessao(e2, Captura de Excessão da Conexão3);

}

onde ConexaoBanco é igual á
"jdbc:interbase://127.0.0.1/e:\dados\tabela.gdb"

5 Respostas

R

Daí cara,

Seguinte, já passei por esse problema onde eu trabalhava antes, quando um registro com acento era retornado do banco, não imprimia o erro.

Infelizmente eu não sei como resolver, mas até onde eu lembro, o problema era no servidor web. Talvez o mister EltonK possa dar uma perguntada lá onde ele tá trabalhando pra ver se eles se alembram :wink:

[]s

eltonk

Cara,
Dá uma olhada neste artigo, http://www.firebase.com.br/cgi-bin/firebase.cgi/dica?ID=1

eu acho que vai ser bem útil para o teu problema :wink:

[] 's

A

Sei que é meio estranho, mas vou responder a minha própria pergunta, estava achando que o problema era no meu código java, mas o problema estava no banco, na criação das tabelas tinha que acrescentar a opção, se assim posso chamar, character set iso8859_1 para que assim ela saiba o tipo de codificação dos caracteres.
Vou colocar abaixo a forma que tive de criar uma tabela.

CREATE DOMAIN “data” AS DATE;

CREATE DOMAIN “inteiro” AS INTEGER;

CREATE DOMAIN “inteiro exigivel” AS INTEGER;

CREATE DOMAIN “texto” AS VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE PT_PT;

CREATE DOMAIN “texto curto” AS VARCHAR(25) CHARACTER SET ISO8859_1 COLLATE PT_PT;
CREATE TABLE LICENCA

(

CODIGO	inteiro exigivel NOT NULL,

COD_SOFTWARE	inteiro exigivel NOT NULL,

ESTACAO	texto curto,

SERIE	texto,

FORNECEDOR	texto,

NOTA_FISCAL	inteiro,

DATA_COMPRA	data,

CHAMADO	inteiro,

PRIMARY KEY (CODIGO)

);

claro que utilizei a criação de domínios, podesse fazer sem isto, mas o principal é o character set e o collate, onde este collate não sei direito para que serve, consegui isto em um exempo e coloquei e deu certo.

R

Daí guri,

Mandou bem em achar a solução :slight_smile:

Acabasse me fazendo lembrar de uma coisa, dá pra tu setar isso como default no teu banco, tipo, se definires isso, não terás mais que te preocupar em ficar colocando isso quando cria a tabela :slight_smile:

[]s

eltonk

alberto, foi disso que o artigo que eu ti passei tratava :stuck_out_tongue_winking_eye:

Tu leu ele???

Abraços,

Criado 26 de novembro de 2003
Ultima resposta 29 de nov. de 2003
Respostas 5
Participantes 3