Olá, pessoal!
Tenho utilizado muitas dicas do fórum, mas essa é a primeira vez que envio uma dúvida.
Já procurei exaustivamente por uma solução, fiz vários testes das possíveis soluções que encontrei em alguns fóruns, mas nenhuma funcionou. Espero que alguém possa me ajudar.
Estou desenvolvendo uma aplicação que lê dados de um sistema, captura certos campos e armazena esses dados em um banco firebird. Já tenho outros módulos funcionando perfeitamente (conectando, salvando e fechando a conexão), mas nesse em particular, não consegui.
O sistema está lendo os dados corretamente, pois pedi para imprimir a instrução SQL e todos os campos estão lá, certinhos, tanto que copiando a instrução impressa e executando-a no firebird, os dados são incluídos, mas na execução do java, aparece a mensagem: “GDS Exception. 335544321. arithmetic exception, numeric overflow, or string truncation”. Muitas das consultas que fiz apontavam para erro na configuração do “charset” no firebird, mas já tentei com o ISO8859_1 e o WIN1252 e não deu certo.
Estou utilizando a seguinte plataforma:
S.O…: Windows 2000
Firebird…: 1.5
Interface Firebird: FlameRobin 0.7.2
Driver JDBC…: FirebirdSQL-1.5.5JDK_1.4
Compilador JAVA: netBeans IDE 3.6
J2SDK…: 1.4.2_05
Aí vão os códigos:
Tabela no Firebird:
CREATE TABLE TESTE
(
CODIGO Integer NOT NULL,
NUMERO_AGENDA Varchar(16) COLLATE ISO8859_1,
NUMERO_OPERA Varchar(16) COLLATE ISO8859_1,
PREF Char(4) COLLATE ISO8859_1,
NOME Varchar(16) COLLATE ISO8859_1,
DATA_MAXIMA_EXECUCAO Date,
SETOR Char(5) COLLATE ISO8859_1,
ATRIBUIDO Char(1) COLLATE ISO8859_1,
SISTEMA Char(5) COLLATE ISO8859_1,
DATA_CONTATO Date,
SITUACAO Char(30) COLLATE ISO8859_1,
DATA_TRANSF Date,
DATA_ACEITE Date,
DATA_REAL Date,
DATA_AGENDA Date,
AGENDADOR Date,
DATA_CAPTURA Date,
INTRUCOES Blob sub_type 0
);
Código JAVA:
salva = “insert into teste values (1,’”+numero_agenda+"’,’"+numero_opera+"’,’"+pref+"’,’"+nome+"’,’"+dt_max_execucao+"’,’"+setor+"’,’"+executante+"’,’"+sistema+"’,’"+dt_contato+"’,’"+situacao+"’,‘30.01.2000’,‘29.01.2001’,’"+dt_realizacao+"’,’"+dt_agendamento+"’,’"+agendador+"’,’"+dt_captura+"’,’"+instrucoes+"’)";
System.out.println(salva);
try
{
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
con2 = DriverManager.getConnection(“jdbc:firebirdsql:localhost:c:/teste.fdb?lc_ctype=ISO8859_1”, “SYSDBA”, “masterkey”);
stmt = con.createStatement();
}
catch(Exception eo)
{
System.out.println(eo.getMessage());
}
try
{
stmt2.executeUpdate(salva1);
}
catch(Exception eo)
{
System.out.println(eo.getMessage());
}
finally
{
try
{
con.close();
}
catch(SQLException onConClose)
{
System.out.println(“Erro no fechamento da conexão!”);
onConClose.printStackTrace();
}
}