[firebase-br] FBManager JayBird - Windows não funciona.
Gustavo Moda
gustavo.moda em gmail.com
Sex Dez 26 15:16:16 -03 2008
Amigo,
Alguém já usou o FBManager do JayBird.
A rotina abaixo cria o banco de dados, dropa se existe.
No linux ele recria somente se existir o arquivo FISICO
Só funciona no Linux, no Windows não apresenta nenhuma mensagem de
erro, mas, não faz nada no banco de dados.
Abaixo o código que crio e apago o banco se existir.
Estou fazendo algo errado? Ou tem problema realmente com o Ruindows. ?
public void criarBancoDados(String host, String banco, String
usuario, String senha) throws BancoDadosUtilException {
try {
logger.info("Criando banco de dados: " + host + ":" + banco);
FBManager fbManager = new FBManager();
fbManager.setServer(host);
fbManager.setPort(3050);
fbManager.setUserName(usuario);
fbManager.setPassword(senha);
fbManager.start();
logger.debug("fbManager.getState() " + fbManager.getState() );
fbManager.setForceCreate(true);
if (fbManager.isDatabaseExists(banco, usuario, senha)) {
logger.info("banco de dados existe, tentando remover");
fbManager.dropDatabase(banco, usuario, senha);
logger.info("banco de dados removido");
}
logger.info("Criando Banco de dados.... banco, usuario, senha ");
fbManager.createDatabase(banco, usuario, senha);
fbManager.stop();
atualizarCharSetBancoDados(host, banco, usuario, senha);
} catch (Throwable e) {
logger.error(e.getMessage(), e);
throw new BancoDadosUtilException("Falha na atualização do banco dados");
}
}
public void atualizarCharSetBancoDados(String host, String banco,
String usuario, String senha) throws BancoDadosUtilException {
Connection con = null;
try {
String url = "jdbc:firebirdsql:" + host + "/3050:" + banco;
logger.info("Atualizando charset: " + url);
Class.forName("org.firebirdsql.jdbc.FBDriver");
con = DriverManager.getConnection(url, usuario, senha);
Statement stm = con.createStatement();
stm.executeUpdate("UPDATE rdb$database SET
rdb$character_set_name='ISO8859_1'");
} catch(Throwable e) {
logger.error("Problema ao tentar atualizar o tipo de caractere do
banco de dados.", e);
throw new BancoDadosUtilException("Falha na atualizacao do banco dados");
} finally {
try {
con.close();
} catch (SQLException onConClose) {
logger.error("Problema ao tentar fechar a conexão com o banco de
dados.", onConClose);
throw new BancoDadosUtilException("Falha na atualizacao do banco dados");
}
}
}
Mais detalhes sobre a lista de discussão lista