Posts Tagged ‘Firebird’

Erro ao carregar libstdc++.so.5 Ubuntu 9.10

quinta-feira, abril 15th, 2010

Precisei instalar um firebird 1.5 Collate Pt-Br no Ubuntu 9.10… ai começaram os problemas…

Uma versão antiga em uma distribuição nova (quase velha, logo será lançado uma nova versão).

Ao tentar instalar me retornou a mensagem:

error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Ao procurar a libstdc++5 nos repositórios mas somente encontrei a nova versão libstdc++6, que mesmo forjando um link para ela da libstdc++5 não deu certo.

Mas depois de pesquisas encontrei neste post a solução: http://bootstrapping.wordpress.com/2009/11/25/missing-libstdc-so-5-in-ubuntu-9-10-karmic/

Uma coisa que eu sempre havia admirado no linux era a retrocompatibilidade…. mas a Canonical pisou na bola.

Mas pelo menos deixaram um pacote com as antigas bibliotecas disponíveis para instalação :)

Baixe ele:

wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb

Descompactei tudo em um diretório:

dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs

ia32-libs é o diretório para eles, em ia32-libs/usr/lib32/ você irá encontrar as libstdc++.so.5.0.7 libstdc++.so.5

Copie-as para /usr/lib/ e Pronto :D

Nos comentários do post da boostrapping tem um caminho mais fácil (eu não tentei, quiz ficar com todo o pacote de bibliotecas)

Mas você pode baixar diretamente o .deb da libstdc++5 http://packages.debian.org/stable/base/libstdc++5 e instalá-lo.

Criar base de dados do Firebird+Java

quarta-feira, abril 22nd, 2009

Opa, precisei em tempo de execução criar uma base firebird com java.

Pesquisei, e claro o Google nos trouxe grandes informações.

Mas vou disponibilizar uma classe prontinha para pesquisa, ou utilização:

package br.com.theos.server.database;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;

import org.firebirdsql.management.FBManager;

public class CreateDatabase {

	private String path;
	private String sep;

	public CreateDatabase() {
		super();

		Execute("teste");
	}

	private String getPath() { //Caminho do aliases.conf do firebird
		if (path == "") {
                         //Separador padrão do sistema operacional
			sep = System.getProperty("file.separator");

			StringBuilder pBuilder = new StringBuilder();

                        //Caminho padrão do diretório de instalação dos programas
			pBuilder.append(System.getenv("programfiles"));
			pBuilder.append(sep);
			pBuilder.append("Firebird");
			pBuilder.append(sep);
			pBuilder.append("Firebird_1_5"); //No meu caso usamos ainda o Firebird 1.5
			pBuilder.append(sep);
			pBuilder.append("aliases.conf");
                        path = pBuilder.toString();
		}

		return path;
	}

	//Para quem usa Alias, adicionar ao arquivo o alias da nova base
	private void addAlias(String database) throws FileNotFoundException {		

		File f = new File(getPath());

		if (f.exists()) {
			try {
				FileWriter fw = new FileWriter(getPath(),true);
				BufferedWriter bout = new BufferedWriter(fw);

				bout.write("\n"+database + " = "
                                         +System.getProperty("user.dir")+sep+
                                         database+".fdb"+"\n");
				bout.close();
				fw.close();
			} catch (IOException e) {
				// TODO Gerar log
				e.printStackTrace();
			}
		}
		else {
			throw new FileNotFoundException(getPath());
		}
	}

	//Database é o nome da base, será criada no diretório da aplicação
	public void Execute(String database) {
		try {
			addAlias(database);

			FBManager fb = new FBManager();
			fb.setServer("127.0.0.1");
			fb.setPort(3050);		

			fb.start();
			fb.createDatabase(database, "sysdba", "masterkey");
			fb.stop();

		} catch (FileNotFoundException fe) {
			// TODO Auto-generated catch block
			fe.printStackTrace();
		}
		catch(Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

Pronto! Simples assim! :D

Não se esquecer da JDBC do Firebrid adicionado ao projeto.