Conexão com FireBird 1.5

aeee galera me desculpem de estar pedindo isto, sei que este nao eh a intenção deste forum, mas eh que eu estou desesperado…
o negocio eh o seguinte, eu tenho que entregar o meu projeto na faculdade e tenho que fazer uma conexão com o FireBird 1.5 sql Server, mas o problema eh que eu nunca trabalhei com banco de dados nenhum, e o código que eu estou tentando usar esta com problemas e eu nao sei resolve-los, entao gostaria da ajuda de vcs, caso vcs resolvam o problema utilizando um outro driver, por favor me passem o link pra baixa-lo… a e outra coisa, em q diretorio eu tenho que colocar o driver???

muito obrigado galera,
t+

segue o meu código, blz
valeu

import java.sql.*;
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
 import java.util.*;
 
 public class TableDisplay extends JFrame {
 private Connection connection;
 private JTable table;
 
 public TableDisplay()
 {
 String url = "jdbc:firebirdsql://169.254.193.2:3050/C:/A_Java/bdados/DICOM.GDB";
 String username = "SYSDBA";
 String password = "ZX1000R";
 
 // Carrega o driver para permitir conexão ao banco de dados
 try {
 Class.forName( "org.firebirdsql.jdbc.FBDriver" );
 
 connection = DriverManager.getConnection(
 url, username, password );
 }
 catch ( ClassNotFoundException cnfex ) {
 System.err.println(
 "Failed to load JDBC/ODBC driver." );
 cnfex.printStackTrace();
 System.exit( 1 ); // termina o programa
 }
 catch ( SQLException sqlex ) {
 System.err.println( "Unable to connect" );
 sqlex.printStackTrace();
 }
 
 getTable();
 
 setSize( 450, 150 );
 show();
 }
 
 private void getTable()
 {
 Statement statement;
 ResultSet resultSet;
 
 try {
 String query = "SELECT * FROM AUTHORS";
 
 statement = connection.createStatement();
 resultSet = statement.executeQuery( query );
 displayResultSet( resultSet );
 statement.close();
 }
 catch ( SQLException sqlex ) {
 sqlex.printStackTrace();
 }
 }
 
 private void displayResultSet( ResultSet rs )
 throws SQLException
 {
 // posiciona para o primeiro registro
 boolean moreRecords = rs.next();
 
 // Se não houver registros, exibe uma mensagem
 if ( ! moreRecords ) {
 JOptionPane.showMessageDialog( this,
 "ResultSet contained no records" );
 setTitle( "No records to display" );
 return;
 }
 
 setTitle( "Authors table from Books" );
 
 Vector columnHeads = new Vector();
 Vector rows = new Vector();
 
 try {
 // obtém títulos de coluna
 ResultSetMetaData rsmd = rs.getMetaData();
 
 for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
 columnHeads.addElement( rsmd.getColumnName( i ) );
 
 // obtém dados da linha
 do {
 rows.addElement( getNextRow( rs, rsmd ) );
 } while ( rs.next() );
 
 // exibe a tabela com conteúdos de ResultSet
 table = new JTable( rows, columnHeads );
 JScrollPane scroller = new JScrollPane( table );
 getContentPane().add(
 scroller, BorderLayout.CENTER );
 validate();
 }
 catch ( SQLException sqlex ) {
 sqlex.printStackTrace();
 }
 }
 
 private Vector getNextRow( ResultSet rs,
 ResultSetMetaData rsmd )
 throws SQLException
 {
 Vector currentRow = new Vector();
 
 for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
 switch( rsmd.getColumnType( i ) ) {
 case Types.VARCHAR:
 currentRow.addElement( rs.getString( i ) );
 break;
 case Types.INTEGER:
 currentRow.addElement(
 new Long( rs.getLong( i ) ) );
 break;
 default:
 System.out.println( "Type was: " +
 rsmd.getColumnTypeName( i ) );
 }
 
 return currentRow;
 }
 
 public void shutDown()
 {
 try {
 connection.close();
 }
 catch ( SQLException sqlex ) {
 System.err.println( "Unable to disconnect" );
 sqlex.printStackTrace();
 }
 }
 
 public static void main( String args[] )
 {
 final TableDisplay app = new TableDisplay();
 
 app.addWindowListener(
 new WindowAdapter() {
 public void windowClosing( WindowEvent e )
 {
 app.shutDown();
 System.exit( 0 );
 }
 }
 );
 }
 }

vasco, qual é o erro q esta dando no seu código? ah, o caminho do driver tu deve colocar na tua variavel de ambiente CLASSPATH, independente de onde ele esteja, tu coloca o caminho até o .jar do driver no CLASSPATH ok? :slight_smile:

ae valeu pela ajuda, as mensagens de erro geradas são:

Failed to load JDBC/ODBC driver.
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at TableDisplay.<init>(TableDisplay.java:27)
at TableDisplay.main(TableDisplay.java:146)

o duro eh que eu nao tenho q menor ideia do que possa ser este erro…

falow e valeu :slight_smile:

É o seguinte: por causa dessas linhas em seu código:

catch ( ClassNotFoundException cnfex ) {
System.err.println(
“Failed to load JDBC/ODBC driver.” );
cnfex.printStackTrace();
System.exit( 1 ); // termina o programa
}

o seu programa dá um erro que não é exatamente aquilo que te atrapalha.

Se vc tá usando uma conexão JDBC, verifique se tem arquivo firebirdsql.jar
Esse é o pacote que contem a classe de conexão com o seu Firebird.

Se seu programa está na pasta c:\programa por exemplo, e se preferir colocar o arquivo .jar lá, na declaração da classe escreva o seguinte:

Class.forName(“programa.firebirdsql.jdbc.FDDriver”);

O nome do pacote equivale ao nome da pasta onde vc coloca o .jar

WagnerFull :cool:

“O Senhor é o meu Pastor, e nada me faltará”

Correção !!!

Class.forName(“programa.firebirdsql.jdbc.FBDriver”);

To com o mesmo problema e nada resolveu, ja li tudo na internet em todos os lugares sobre isso e nada, como configura o classpath? Onde eu coloco essa pasta q tem org.firebird…? As variaveis de java tao blz.

O caminho ate agora q eu fiz foi: instalei o firebird(tudo criado e rodando normal) peguei o drive FirebirdSQL-1.5.0RC2JDK_1.4 e agora? Tem um monte de .rar e .zip dentro? Onde eu coloco?

:evil: :evil:

duende, nao tem nenhum arquivo .jar no driver não? é o caminho pra esse arquivo q tu tens q colocar no CLASSPATH

Blz, o classpath acho q ja arrumei mas agora da outro erro q é:

Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError&#58; javax/resource/ResourceException
     at java.lang.Class.forName0&#40;Native Method&#41;
     at java.lang.Class.forName&#40;Class.java&#58;141&#41;
     at MinhaClasse.main&#40;MinhaClasse.java&#58;12&#41;

Nessa linha 12 tem o: Class.forName(“org.firebirdsql.jdbc.FBDriver”);
E esses error acontecem na execução, compila tudo blz.

:cry:

Consegui, ate q enfim, era besteira, tinha q deszipar o conteudo todo na pasta e eu so tava deszipando o firebird.jar.

:oops: :oops: :oops:

[quote=“WagnerFull”]
Se seu programa está na pasta c:\programa por exemplo, e se preferir colocar o arquivo .jar lá, na declaração da classe escreva o seguinte:

Class.forName(“programa.firebirdsql.jdbc.FDDriver”);

O nome do pacote equivale ao nome da pasta onde vc coloca o .jar

WagnerFull :cool:

“O Senhor é o meu Pastor, e nada me faltará”[/quote]

Galera não estou conseguindo conectar o meu aplicativo ao firebird.

todos os arquivos estão dentro da pasta c:\db, são eles:

  • Bco.java (fonte)
  • Chat.fdb (banco)
  • firebirdjmx.jar
  • firebirdsql.jar
  • firebirdsql.rar
  • firebirdsql-full.jar
  • firebirdsql-pool.jar
  • firebirdsql-test.jar
  • mini-concurrent.jar
  • log4j-core.jar
  • jaas.jar
  • mini-j2ee.jar
    Esses arquivos .jar são os que foram extraídos do FirebirdSQL-1.5.0RC2JDK_1.4.zip que eu baixei.

Estou compilando da seguinte forma:

  • javac -classpath c:\db *.java

Estou executando o .class que também está na mesma pasta c:\db da seguinte forma:

  • java -classpath c:\db\ Bco

O erro é o seguinte:
testando acesso a banco de dado Firebird
excessao ClassNotFound…
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at Bco.main(Bco.java:8)
Exception in thread “main” java.lang.NullPointerException
at Bco.main(Bco.java:27)

O que será que está errado ?

Ai vai meu código:

import java.sql.*; public class Bco &#123; public static void main&#40;String args&#91;&#93;&#41; &#123; System.out.println&#40;&quot;#testando acesso a banco de dado Interbase &quot;&#41;; Connection conn = null; String teste = &quot;SELECT * FROM LOGIN;&quot;; try &#123; Class.forName&#40;DRIVER&#41;; conn = DriverManager.getConnection&#40;URL,&quot;SYSDBA&quot;,&quot;masterkey&quot;&#41;; System.out.println&#40;&quot;Sucesso na conexão!&quot;&#41;; Statement stm = conn.createStatement&#40;&#41;; ResultSet rs = stm.executeQuery&#40;teste&#41;; while &#40;rs.next&#40;&#41;&#41; &#123; String linha = rs.getString&#40;&quot;ID&quot;&#41;; System.out.println&#40;&quot;Cliente&#58;&quot; + linha&#41;; &#125; System.out.println&#40;&quot;select realizado &quot;&#41;; &#125; catch &#40;ClassNotFoundException e&#41; &#123; System.out.println&#40;&quot;excessao ClassNotFound...&quot;&#41;; e.printStackTrace&#40;&#41;; &#125; catch &#40;SQLException e&#41; &#123; System.out.println&#40;&quot;SQL Exception... Erro dos Bravos&quot;&#41;; e.printStackTrace&#40;&#41;; &#125; finally &#123; try &#123; conn.close&#40;&#41;; &#125; catch &#40;SQLException onConClose&#41; &#123; System.out.println&#40;&quot;error on closing&quot;&#41;; onConClose.printStackTrace&#40;&#41;; &#125; &#125; &#125; public static final String DRIVER=&quot;org.firebirdsql.jdbc.FBDriver&quot;; public static final String URL=&quot;jdbc&#58;firebirdsql&#58;127.0.0.1/3050&#58;c&#58;\db\CHAT.FDB&quot;; &#125;

coloque o caminho pros JARs do teu driver no CLASSPATH do teu sistema, ai não tem erro…