ASP.NET com Banco Firebird

Semelhantemente com o post do MySQL, irei demonstrar como conectar a um banco Firebird usando o Framework (DLL) que eles disponilizam e que pode ser obtido aqui. Vou resumir o processo pois é bem parecido, daí é só dar uma olhadinha rápida no post anterior.
Basicamente incorpore a DLL no projeto e crie uma nova classe chamada Firebird. Adicione o namespace FirebirdSql.Data.FirebirdClient e adicione o seguinte código para consulta:

FbConnection conexao = new FbConnection("String Conexão Firebird");
FbCommand comando = new FbCommand();
FbDataReader datareader = null;
try
{
    conexao.Open();
    try
    {
        FbTransaction transacao = conexao.BeginTransaction();
        comando.Connection = conexao;
        comando.CommandText = "SELECT * FROM Tabela";
        datareader = comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        transacao.Commit();
    }
    catch (FbException erro) { }
}
catch (FbException erro) { }

Bem semelhante... nada de novo! Daí pode-se gerar os demais métodos de conexão a partir desse. 
Vi em alguns tópicos pela NET que o pessoal encontra alguns problemas ao tentar conectar ao Firebird. O principal erro é: "Your user name and password are not defined. Ask your database administrator to set up a Firebird login."
Novamente, vi soluções muito loucas e esdrúxulas mas que foram tentativas de ajudar e de boa vontade do pessoal. Bem, mesmo que seu login e senha estejam certos (e tenha certeza disso antes de reclamar), o Firebird, em comunicação com a DLL, não dão muita transparência e ajuda ao usuário. O problema, basicamente, é a string de conexão. Basta usar essa:
User=SYSDBA; Password=masterkey; Database=C:\Bancos\Firebird\Thiago.fdb; DataSource=localhost; Port=3050; Dialect=3; Charset=NONE; Role=; Connection lifetime=15; Pooling=true; MinPoolSize=0; MaxPoolSize=50; Packet Size=8192; ServerType=0;
Ou

User=SYSDBA; Password=masterkey; Database=C:\Bancos\Firebird\Thiago.fdb; Server=localhost;

Problema resolvido!

0 comentários:

Postar um comentário