Re: URGENTE Conexão com FireBird

Use a tag Code para formatar o código.

A Paz!!

Agora a respeito de sua conexão. Tipo assim, eu fiz um teste aqui e funcionou blz…

Vc colocou o driver no ClassPath?

Mas pelo erro que deu é algum objeto que está sendo referenciado sem ser instanciado, mas pelo caminho que percorri não encontrei referência nula não…

A Paz!!

Cara, te aconselho a usar conexão direta (sem ODBC) é mais rápida e te deixa independente de plataforma.

A Paz!!

Para vc conectar diretamente, vc deve baixar o driver JDBC para o firebird(jaybird).E isso vc encontra no site oficial.

Tendo o driver em mãos, coloque o jar firebirdsql-full.jar em seu classpath. Daí é só vc fazer como fez no seu tópico:

Classe: org.firebirdsql.jdbc.FBDriver
URL: jdbc:firebirdsql:Maquina_Do_Banco/3050:C://O_Caminho_Do_Seu_Banco_Ou_O_Alias
Usuário e senha.

Qquer coisa posta aí.

A Paz!!

eu peguei o seu código pra aprender como fazer…
o negócio é q eu não sei onde colocar os arquivos do firebird…
se poderia me esclarecer certinho o q devo fazer para q funcione corretamente…

[]'s Thiago

Estou com problemas para conectar o FireBird, estou com o Drive instalado configurado, mas não consigo conectar, a seguinte msg de erro aparece:

Exception in thread “main” java.lang.NullPointerException
at ConexaoInterbase.exeQuery(ConexaoInterbase.java:84)
at ConexaoInterbase.main(ConexaoInterbase.java:32)

(Obs.: por mais que eu tente formatar o código, aqui ele fica sem formatação)

O Código

import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;

public class ConexaoInterbase {

      final static private String DRV = "org.firebirdsql.jdbc.FBDriver";
      private String url = "jdbc:firebirdsql:localhost/3050:" +
        "C:\\Boldcron\\Bold.gdb";
      private String userName = "sysdba";
      private String password = "masterkey";
      private Connection conn; 
      private Statement st;

      public static void main(String arg[])
      {
  	    ConexaoInterbase a = new ConexaoInterbase();
      	a.conecta();
  	    a.exeQuery("select * from DADOS;");
  	
      }
  
      public boolean conecta() {
        boolean result = true;
        try {
          System.out.println("antes de conectar");
      Class.forName(DRV);
      conn = DriverManager.getConnection(url, userName, password);
      System.out.println("depois de conectar");
    }
    catch(java.lang.ClassNotFoundException erroClass) {

      mensagemErro(erroClass.getMessage());
      result = false;
    }
    catch(SQLException erroSQL) {
      mensagemErro(erroSQL.getMessage());
      result = false;
    }
    return result;
  }

  public void desconecta() {
    boolean result = true;
    try {
      conn.close();
    }
    catch(SQLException erroSQL) {
    	mensagemErro(erroSQL.getMessage());
      result = false;
    }
  }

  public int regCount(String qry) {
    int result = 0;
    try {
      st = conn.createStatement();
      ResultSet rs = st.executeQuery(qry);
      rs.next();
      result = rs.getInt(1);
      st.close();
    }
    catch(SQLException sqlex) {
      mensagemErro(sqlex.getMessage());
    }
    return result;
  }

  public int exeQuery(String qry) {
    int result = 0;
    try {
      st = conn.createStatement();
      result = st.executeUpdate(qry);
      System.out.println("Resultado= "+result);
      st.close();
    }
    catch(SQLException sqlex) {
      mensagemErro(sqlex.getMessage());
    }
    return result;
  }

  public String getColumn(String qry) {
    String result = "";
    try {
      st = conn.createStatement();
      ResultSet rs = st.executeQuery(qry);
      rs.next();
      result = rs.getString(1);
      st.close();
    }
    catch(SQLException sqlex) {
      mensagemErro(sqlex.getMessage());
    }
    return result;
  }

  public void getColumn(String qry, String[] reg) {
    try {
      Statement st = conn.createStatement();
      ResultSet rs = st.executeQuery(qry);
      rs.next();
      for (int i = 1; i <= reg.length; i++)
        reg[i-1] = rs.getString(i);
      st.close();
    }
    catch(SQLException sqlex) {
      mensagemErro(sqlex.getMessage());
    }
  }

  public void getColumn(String qry, String[][] reg, int lin) {
    try {
      System.out.println(qry);
      st = conn.createStatement();
      ResultSet rs = st.executeQuery(qry);
      for (int i = 1; i <= lin; i++) {
        if (rs.next())
          for (int n = 1; n <= reg[n].length; n++ )
            reg[i-1][n-1] = rs.getString(n);
      }
      st.close();
    }
    catch(SQLException sqlex) {
      mensagemErro(sqlex.getMessage());
    }
  }

  public void setURL(String valor) {
    url = valor;
  }

  public void setUserName(String valor) {
    userName = valor;
  }

  public void setPassword(String valor) {
    password = valor;
  }

  private void mensagemErro(String msg) {
    JOptionPane.showMessageDialog(
      null,
      msg,
      "Erro",
      JOptionPane.ERROR_MESSAGE);
  }
}

Obrigado…

Encontrei o erro nestas linhas:

-> final static private String DRV = “org.firebirdsql.jdbc.FBDriver”;
-> private String url = “jdbc:firebirdsql:localhost/3050:” +
“C:\Boldcron\Bold.gdb”;

alterando elas para:

-> final static private String DRV = “sun.jdbc.odbc.JdbcOdbcDriver”;
-> private String url = “jdbc.odbc:DbBold”; //Drive JdbcOdbc configurado

Resolveu o problema.

Abraços