none
Conexão Firebird RRS feed

  • Pergunta

  • Galera com faço para conectar com BD Firebird segui os passos de baixar o .NET do Firebrid, instalei porem qnd vou adicionar a referência não esta la? segui os passos do link http://www.linhadecodigo.com.br/Artigo.aspx?id=810&pag=3
    Uso visual express2008, Firebird 1.5 e o FirebirdClient-2.5.0-Alpha2.msi.
    segunda-feira, 17 de março de 2008 15:58

Respostas

  • A algum tempo eu fiz um programa de acesso a dados utilizando-se do FirebirdClient 2.0 (Provider). Pode ser no site (http://www.ibphoenix.com/main.nfs?page=ibp_download_dotnet)

     

    Para funcionar, instale o FirebirdCliente e faça uma referencia na sua aplicação.

     

    Code Snippet

    Referencia:

    FirebirdSql.Data.FirebirdClient

     

     

     

     

    Faz menção a ela:

     

    Code Snippet

    Using:

    using FirebirdSql.Data.FirebirdClient;

     

     

     

    Eu usei uma classe de conexão parecida com essa. Sempre retorna booleano para saber se foi realizado com sucesso.

     

    Code Snippet

    class BD_CRG

    {

       //Publicas

       static FbConnection _FBconexao;

       static FbDataAdapter _FBadaptador;

       static FbCommandBuilder _FBcomandoBuilder;

     

    public static DataSet PreencheDataSet(string SQL, string NomeTabela)

    {

       DataSet _DSBanco;

      

     try

       {

         Abrir();

         _FBadaptador = new FbDataAdapter(SQL, _FBconexao);

         _FBadaptador.SelectCommand.CommandText = SQL;

         _FBcomandoBuilder = new FbCommandBuilder(_FBadaptador);

         _DSBanco = new DataSet();

         _FBadaptador.Fill(_DSBanco, NomeTabela);

     

        return (_DSBanco);

       }

     catch

       {

        return ((DataSet)null);

       }

     finally

       {

        Fechar();

       }

    }

     

    public static Boolean Abrir()

    {

       try

        {

          if (_FBconexao == null)

           {

            FbConnectionStringBuilder strcnx = new FbConnectionStringBuilder();

            strcnx.DataSource = "localhost";

            strcnx.UserID = "SYSDBA";

            strcnx.Password = "masterkey";

            strcnx.Dialect = 3;

            strcnx.Database = "C:\\Banco.gdb";

     

           _FBconexao = new FbConnection(strcnx.ToString());

           _FBconexao.Open();

            }

     

          return (true);

         }

         catch (FbException e)

         {

            return (false);

         }

    }

     

    public static Boolean Fechar()

    {

      try

      {

       if (_FBconexao != null)

       {

         if (_FBconexao.State == System.Data.ConnectionState.Open)

         {

          _FBconexao.Close();

          _FBconexao = null;

         return (true);

        }

      }

     

     return (false);

      }

     catch (FbException e)

     {

      return (false);

     }

    }

     

    public static Boolean Executar(string SQL)

    {

      try

      {

        Abrir();

        if (_FBconexao.State == System.Data.ConnectionState.Open)

        {

          FbCommand fbcmd = new FbCommand(SQL, _FBconexao);

          fbcmd.ExecuteNonQuery();

          return (true);

        }

        else

       {

        return (false);

       }

      }

      catch

     {

       return (false);

     }

     finally

     {

       Fechar(); 

     }

    }

     

     

     

    Espero que tenha lhe ajudado.

    Bom programa.

     

    Abraços.

     

    terça-feira, 18 de março de 2008 16:45
  • Já faz tempo que fiz isso, mas me parece que é isso mesmo que tem que ser feito. No seu projeto clique com o botão direito em referências e Add reference. Vai abrir uma janela, daí como disse na minha primeira resposta, clique em Browse e ache o FirebirdCliente.exe, e não aquele que vc. citou "FirebirdCliente....Alpha.msi". Clique nele que e ele deverá ser instalado. Agora se vc. fizer tudo isso e assim mesmo não der certo, não sei o poderá ser.

    terça-feira, 18 de março de 2008 18:10

Todas as Respostas

  • Boa Tarde, Tomassoni. Quando vc. diz que ele não está lá, deve ser porque vc. não procurou na pasta onde foi baixado.Você fez isso?. Clique em Browser, Abra a pasta clique no aquivo(o Meu aqui é FirebirdCliente-2.0.exe) que ele será instalado e das próximas vezes vc não precisará mais instalar ele, somente referenciá-lo no projeto.

     

    Um abraço

    segunda-feira, 17 de março de 2008 17:55
  • Cara digo que não aparece la na IDE quando vou adicionar a referência, instalar eu instalei com a IDE free ele aparece.??
    terça-feira, 18 de março de 2008 15:52
  • A algum tempo eu fiz um programa de acesso a dados utilizando-se do FirebirdClient 2.0 (Provider). Pode ser no site (http://www.ibphoenix.com/main.nfs?page=ibp_download_dotnet)

     

    Para funcionar, instale o FirebirdCliente e faça uma referencia na sua aplicação.

     

    Code Snippet

    Referencia:

    FirebirdSql.Data.FirebirdClient

     

     

     

     

    Faz menção a ela:

     

    Code Snippet

    Using:

    using FirebirdSql.Data.FirebirdClient;

     

     

     

    Eu usei uma classe de conexão parecida com essa. Sempre retorna booleano para saber se foi realizado com sucesso.

     

    Code Snippet

    class BD_CRG

    {

       //Publicas

       static FbConnection _FBconexao;

       static FbDataAdapter _FBadaptador;

       static FbCommandBuilder _FBcomandoBuilder;

     

    public static DataSet PreencheDataSet(string SQL, string NomeTabela)

    {

       DataSet _DSBanco;

      

     try

       {

         Abrir();

         _FBadaptador = new FbDataAdapter(SQL, _FBconexao);

         _FBadaptador.SelectCommand.CommandText = SQL;

         _FBcomandoBuilder = new FbCommandBuilder(_FBadaptador);

         _DSBanco = new DataSet();

         _FBadaptador.Fill(_DSBanco, NomeTabela);

     

        return (_DSBanco);

       }

     catch

       {

        return ((DataSet)null);

       }

     finally

       {

        Fechar();

       }

    }

     

    public static Boolean Abrir()

    {

       try

        {

          if (_FBconexao == null)

           {

            FbConnectionStringBuilder strcnx = new FbConnectionStringBuilder();

            strcnx.DataSource = "localhost";

            strcnx.UserID = "SYSDBA";

            strcnx.Password = "masterkey";

            strcnx.Dialect = 3;

            strcnx.Database = "C:\\Banco.gdb";

     

           _FBconexao = new FbConnection(strcnx.ToString());

           _FBconexao.Open();

            }

     

          return (true);

         }

         catch (FbException e)

         {

            return (false);

         }

    }

     

    public static Boolean Fechar()

    {

      try

      {

       if (_FBconexao != null)

       {

         if (_FBconexao.State == System.Data.ConnectionState.Open)

         {

          _FBconexao.Close();

          _FBconexao = null;

         return (true);

        }

      }

     

     return (false);

      }

     catch (FbException e)

     {

      return (false);

     }

    }

     

    public static Boolean Executar(string SQL)

    {

      try

      {

        Abrir();

        if (_FBconexao.State == System.Data.ConnectionState.Open)

        {

          FbCommand fbcmd = new FbCommand(SQL, _FBconexao);

          fbcmd.ExecuteNonQuery();

          return (true);

        }

        else

       {

        return (false);

       }

      }

      catch

     {

       return (false);

     }

     finally

     {

       Fechar(); 

     }

    }

     

     

     

    Espero que tenha lhe ajudado.

    Bom programa.

     

    Abraços.

     

    terça-feira, 18 de março de 2008 16:45
  • Pois é, continuo achando que vc. não instalou ele na IDE, ou seja, na primeira vez vc. tem procurar ele na pasta e aí sim, instalar. Só baixando, ele não será instalado automaticamente.

     

    terça-feira, 18 de março de 2008 17:36
  • Hum, agora entendi, instalar na IDE...e como faço isso?
    terça-feira, 18 de março de 2008 17:44
  • Já faz tempo que fiz isso, mas me parece que é isso mesmo que tem que ser feito. No seu projeto clique com o botão direito em referências e Add reference. Vai abrir uma janela, daí como disse na minha primeira resposta, clique em Browse e ache o FirebirdCliente.exe, e não aquele que vc. citou "FirebirdCliente....Alpha.msi". Clique nele que e ele deverá ser instalado. Agora se vc. fizer tudo isso e assim mesmo não der certo, não sei o poderá ser.

    terça-feira, 18 de março de 2008 18:10
  • Valeu a ajuda deu certo.
    Fiz o que o Antunes me escreveu acima, porém como eu não tinha o .exe e sim as duas dll's (FirebirdSql.Data.FirebirdClient.dll, FirebirdSql.Data.UnitTests.dll); as quais vem junto com o FirebirdCliente....Alpha.msi e fica dentro de c:\arquivos de programas\FirebirdCliente2.0. Adicionei elas e fiz uma mensão a elas com using e funcionou 100%.

    Valeu
    terça-feira, 18 de março de 2008 18:42
  • Olá Clayr,

    Me dá uma ajuda, por obséquio.

    Favor me mandar um exemplo de uso desse seu código, tipo assim:

     

    Um exemplo de uso como Popupar um DataGridView com este seu código;

    E um outro exemplo de uso de como Inserir dados num datset ou datatable com este código.

     

    Antecipo meus agradecimentos.

    Airton Barros.

    terça-feira, 1 de abril de 2008 23:55
  • sábado, 5 de abril de 2008 12:15
  • Olá José Antunes.

    Muito Obrigado.

    Airton Barros

    sábado, 5 de abril de 2008 19:30
  •  

    Galera é o seguinte eu populei a Grid com o seguinte código ( Para efetar a conexão, usei a dll's como citei acima):

     

    private FbConnection fbConn;

    private FbDataAdapter fbDataAdapter = new FbDataAdapter();

    private DataTable dataTable = new DataTable();

     

    void MainFormLoad(object sender, EventArgs e)

    {

    this.dataGrid1.DataSource = this.dataTable;

    this.mostraTodos();

    }

     

     

    private void mostraTodos(){

    this.dataTable.Clear();

    //MessageBox.Show(System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString());

    //String dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    string dadoCon = System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString();

    this.fbConn = new FbConnection(dadoCon);

    try{

    this.fbConn.Open();

    }catch(Exception ex){

    MessageBox.Show("Erro ao efetuar conexão" + ex.Message);

    }

    String sql = "Select * from usuarios";

    this.fbDataAdapter.SelectCommand = new FbCommand(sql, this.fbConn);

    this.fbDataAdapter.Fill(this.dataTable);

    }

     

    Note as linhas:

    1 -> string dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    2 -> string dadoCon = System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString();

     

    Se for utilizar a 1 passe aqui todas as propriedades para conecta ao BD, usuário, senha, url e dialect.

    Se for ultilizar a 2 crie um arquivo XML na raiz do projeto com nome app e extensão XML (app.xml) com o conteúdo como segue abaixo.

     

    <?xml version="1.0" encoding="utf-8" ?>

         <configuration>
             <appSettings>
                 <add key="dadosBD" value="User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb;Dialect=3" />
             </appSettings>
         </configuration>

     

    Pronto é isso ai espero te ajudado.

     

    Só para desencargo segue abaixo o projetinho que utilizei para aprender a conectar.

     

    /*

    * Criado por SharpDevelop.

    * Usuário: Tomassoni

    * Data: 18/3/2008

    * Hora: 13:50

    *

    * Para alterar este modelo use Ferramentas | Opções | Codificação | Editar Cabeçalhos Padrão.

    */

    using System;

    using System.Collections.Generic;

    using System.Drawing;

    using System.Windows.Forms;

    using System.Data;

    using FirebirdSql.Data.FirebirdClient;

     

    namespace NovoFBFree

    {

    /// <summary>

    /// Description of MainForm.

    /// </summary>

    public partial class MainForm : Form

    {

    private FbConnection fbConn;

    private FbDataAdapter fbDataAdapter = new FbDataAdapter();

    private DataTable dataTable = new DataTable();

    public MainForm()

    {

    //

    // The InitializeComponent() call is required for Windows Forms designer support.

    //

    InitializeComponent();

    //

    // TODO: Add constructor code after the InitializeComponent() call.

    //

    }

    void MainFormLoad(object sender, EventArgs e)

    {

    this.dataGrid1.DataSource = this.dataTable;

    this.mostraTodos();

    }

    private void mostraTodos(){

    this.dataTable.Clear();

    //MessageBox.Show(System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString());

    //String dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    string dadoCon = System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString();

    this.fbConn = new FbConnection(dadoCon);

    try{

    this.fbConn.Open();

    }catch(Exception ex){

    MessageBox.Show("Erro ao efetuar conexão" + ex.Message);

    }

    String sql = "Select * from usuarios";

    this.fbDataAdapter.SelectCommand = new FbCommand(sql, this.fbConn);

    this.fbDataAdapter.Fill(this.dataTable);

    }

    private void inserirBD(){

    String dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    this.fbConn = new FbConnection(dadoCon);

    try{

    this.fbConn.Open();

    }catch(Exception ex){

    MessageBox.Show("Erro ao efetuar conexão" + ex.Message);

    }

    String sql = "insert into usuarios (nome) values('Junior2')";

    this.fbDataAdapter.InsertCommand = new FbCommand(sql, this.fbConn);

    this.fbDataAdapter.InsertCommand.ExecuteNonQuery();

    this.mostraTodos();

    this.fbConn.Close();

    this.fbConn.Dispose();

    }

    }

    }

    domingo, 6 de abril de 2008 16:09
  •  

    Galera é o seguinte eu populei a Grid com o seguinte código ( Para efetar a conexão, usei a dll's como citei acima):

     

    private FbConnection fbConn;

    private FbDataAdapter fbDataAdapter = new FbDataAdapter();

    private DataTable dataTable = new DataTable();

     

    void MainFormLoad(object sender, EventArgs e)

    {

    this.dataGrid1.DataSource = this.dataTable;

    this.mostraTodos();

    }

     

     

    private void mostraTodos(){

    this.dataTable.Clear();

    //MessageBox.Show(System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString());

    //String dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    string dadoCon = System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString();

    this.fbConn = new FbConnection(dadoCon);

    try{

    this.fbConn.Open();

    }catch(Exception ex){

    MessageBox.Show("Erro ao efetuar conexão" + ex.Message);

    }

    String sql = "Select * from usuarios";

    this.fbDataAdapter.SelectCommand = new FbCommand(sql, this.fbConn);

    this.fbDataAdapter.Fill(this.dataTable);

    }

     

    Note as linhas:

    1 -> string dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    2 -> string dadoCon = System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString();

     

    Se for utilizar a 1 passe aqui todas as propriedades para conecta ao BD, usuário, senha, url e dialect.

    Se for ultilizar a 2 crie um arquivo XML na raiz do projeto com nome app e extensão XML (app.xml) com o conteúdo como segue abaixo.

     

    <?xml version="1.0" encoding="utf-8" ?>

         <configuration>
             <appSettings>
                 <add key="dadosBD" value="User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb;Dialect=3" />
             </appSettings>
         </configuration>

     

    Pronto é isso ai espero te ajudado.

     

    Só para desencargo segue abaixo o projetinho que utilizei para aprender a conectar.

     

    /*

    * Criado por SharpDevelop.

    * Usuário: Tomassoni

    * Data: 18/3/2008

    * Hora: 13:50

    *

    * Para alterar este modelo use Ferramentas | Opções | Codificação | Editar Cabeçalhos Padrão.

    */

    using System;

    using System.Collections.Generic;

    using System.Drawing;

    using System.Windows.Forms;

    using System.Data;

    using FirebirdSql.Data.FirebirdClient;

     

    namespace NovoFBFree

    {

    /// <summary>

    /// Description of MainForm.

    /// </summary>

    public partial class MainForm : Form

    {

    private FbConnection fbConn;

    private FbDataAdapter fbDataAdapter = new FbDataAdapter();

    private DataTable dataTable = new DataTable();

    public MainForm()

    {

    //

    // The InitializeComponent() call is required for Windows Forms designer support.

    //

    InitializeComponent();

    //

    // TODO: Add constructor code after the InitializeComponent() call.

    //

    }

    void MainFormLoad(object sender, EventArgs e)

    {

    this.dataGrid1.DataSource = this.dataTable;

    this.mostraTodos();

    }

    private void mostraTodos(){

    this.dataTable.Clear();

    //MessageBox.Show(System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString());

    //String dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    string dadoCon = System.Configuration.ConfigurationSettings.AppSettings["conexao"].ToString();

    this.fbConn = new FbConnection(dadoCon);

    try{

    this.fbConn.Open();

    }catch(Exception ex){

    MessageBox.Show("Erro ao efetuar conexão" + ex.Message);

    }

    String sql = "Select * from usuarios";

    this.fbDataAdapter.SelectCommand = new FbCommand(sql, this.fbConn);

    this.fbDataAdapter.Fill(this.dataTable);

    }

    private void inserirBD(){

    String dadoCon = "User=SYSDBA;Password=masterkey;DataBase=c:\\GENERICO.fdb; Dialect=3";

    this.fbConn = new FbConnection(dadoCon);

    try{

    this.fbConn.Open();

    }catch(Exception ex){

    MessageBox.Show("Erro ao efetuar conexão" + ex.Message);

    }

    String sql = "insert into usuarios (nome) values('Junior2')";

    this.fbDataAdapter.InsertCommand = new FbCommand(sql, this.fbConn);

    this.fbDataAdapter.InsertCommand.ExecuteNonQuery();

    this.mostraTodos();

    this.fbConn.Close();

    this.fbConn.Dispose();

    }

    }

    }

    domingo, 6 de abril de 2008 16:09