[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