vc instalou o service pack 2 do windows? eu tbm tive problemas tentando usar o interbase no win xp, mas com o SP2, dai eu instalei o firebird e achei muito bom, sem ter que copiar esse driver a mais q o interbase pede.
R
RafaelBgPJ
Estou com o xp sp2. E inerbase 6. Mas vc diz se eu colocar o drive do fire bird ele ira funcionar?
M
maluquo1PJ
o interbase nao sei se vai funcionar, mas instala o BD firebird mesmo, que é ate melhor que o interbase 6. Se vc ta acostumado a usar o ib console pra administrar o banco vc pode usar o IBOconsole que é praticamente igual, só que é feito pro firebird. Eu troquei e nao me arrependo.
R
RafaelBgPJ
Eu só instalo o firebird e o drive para o firebird/ java, FirebirdSQL-1.0.0?
e adiciono o class path para o diretorio do drive do firebird?
è isso?
M
maluquo1PJ
é, vc adiciona o drive no class path, como eu utilizo o drive jaybird no meu caso ta assim meu CLASSPATH … “.;c:\j2sdk1.4.2_04\lib\tools.jar;c:\FirebirdSQL-1.5.5JDK_1.4\firebirdsql-full.jar”
R
RafaelBgPJ
Poderia me enviar um codigo fonte como exemplo?
M
maluquo1PJ
esse codigo é o mesmo do artigo "Conectando o IB atraves de JDBC " da hp www.firebase.com.br, apenas alterado pra ser usado com o firebird
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.util.*;publicclassApJavaextendsJFrame{privateConnectionconApJava;// Conexão que será criada com o bancoprivateJTablevTabela;// Tabela onde os registros serão inseridosprivateJMenuBarbarPrincipal;// Menu da aplicaçãoprivateJMenumnuOpcoes;privateJMenuItemitens;publicApJava(){componentes();// sUrl especifica o banco de dados ao qual o programa se conecta, usando JDBC// para conectar um banco de dados InterbaseStringsUrl="jdbc:firebirdsql:localhost/3050:c:/Java/ApJava.gdb";StringvUsuario="SYSDBA";StringvSenha="masterkey";// Carrega o Driver JDBC e abre a conexão com o bancotry{Class.forName("org.firebirdsql.jdbc.FBDriver");conApJava=DriverManager.getConnection(sUrl,vUsuario,vSenha);}catch(ClassNotFoundExceptioncnfex){// Excessões geradasStringMsg="Impossível carregar o seguinte driver JDBC: "+cnfex.getMessage()+"\nSe o mesmo estiver instalado favor verificar a variável de ambiente CLASSPATH\n\n";StringTitulo=" Erro ao carregar Driver JDBC";// cnfex.getMessage() => retorna interbase.interclient.DriverJOptionPane.showMessageDialog(null,Msg,Titulo,JOptionPane.WARNING_MESSAGE);System.exit(1);// termina o programa}catch(SQLExceptionsqlex){StringMsg="Não foi possível conectar o banco de dados ...";StringTitulo=" Erro ao tentar conectar base de dados !";JOptionPane.showMessageDialog(null,Msg,Titulo,JOptionPane.WARNING_MESSAGE);sqlex.printStackTrace();}getTable();resize(500,300);setLocation(50,50);show();}publicvoidcomponentes(){// Contrói a interface da aplicação{ Menu }JMenuBarmnubarJavaxe;JMenumnuArquivo,mnuAjuda,AjuJavaxe;JMenuItemArqFechar;JMenuItemAjuSobre;mnubarJavaxe=newJMenuBar();// Adcionando a barra de menussetJMenuBar(mnubarJavaxe);// Menu ArquivomnuArquivo=newJMenu("Arquivo",true);// Criando o menumnuArquivo.setMnemonic('v');mnubarJavaxe.add(mnuArquivo);ArqFechar=newJMenuItem("Fechar");ArqFechar.setMnemonic('F');ArqFechar.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){System.exit(0);}});mnuArquivo.add(ArqFechar);// Menu AjudamnuAjuda=newJMenu("Ajuda");mnuAjuda.setMnemonic('d');mnubarJavaxe.add(mnuAjuda);AjuSobre=newJMenuItem("Sobre Javaxe InterBase Access");AjuSobre.setMnemonic('S');AjuSobre.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){}});mnuAjuda.add(AjuSobre);}privatevoidgetTable(){Statementsmtp;ResultSetconsApJava;try{// Gera a Query para o bancoStringconsulta="SELECT * FROM TBLDADOS";smtp=conApJava.createStatement();consApJava=smtp.executeQuery(consulta);PrintQuery(consApJava);smtp.close();}catch(SQLExceptionsqlex){// Erro ao executar a Query no bancosqlex.printStackTrace();}}privatevoidPrintQuery(ResultSetrs)throwsSQLException{// posiciona-se no primeiro registrobooleanregistro=rs.next();// Se não houver registros exibe mensagemif(!registro){JOptionPane.showMessageDialog(null,"Consulta não retornou nenhum valor"," Registro vazio",JOptionPane.WARNING_MESSAGE);return;}setTitle("Javaxe Interbase Access 1.08, Copyright Javaxe ®");Vectorcolunas=newVector();Vectorlinhas=newVector();try{// Obtém a estrutura da tabela do banco, que será adcionado a tabelaResultSetMetaDatarsmd=rs.getMetaData();for(inti=1;i<=rsmd.getColumnCount();++i)colunas.addElement(rsmd.getColumnName(i));// Obtém dados da linhado{linhas.addElement(getNextRow(rs,rsmd));}while(rs.next());// Cria tabela e exibe o conteúdo do ResultSetvTabela=newJTable(linhas,colunas);JScrollPanescroller=newJScrollPane(vTabela);getContentPane().add(scroller,BorderLayout.CENTER);validate();}catch(SQLExceptionsqlex){sqlex.printStackTrace();}}privateVectorgetNextRow(ResultSetrs,ResultSetMetaDatarsmd)throwsSQLException{VectorcurLinha=newVector();for(inti=1;i<=rsmd.getColumnCount();++i)switch(rsmd.getColumnType(i)){caseTypes.VARCHAR:curLinha.addElement(rs.getString(i));break;caseTypes.INTEGER:curLinha.addElement(newLong(rs.getLong(i)));break;default:System.out.println("Tipo era: "+rsmd.getColumnTypeName(i));}returncurLinha;}publicvoidshutDown(){try{// Fecha a conexão co o banco de dadosconApJava.close();}catch(SQLExceptionsqlex){// Não foi possível fechar a conexãoSystem.err.println("Erro ao fechar conexão com o banco...");sqlex.printStackTrace();}}publicstaticvoidmain(Stringargs[]){finalApJavaapp=newApJava();app.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){app.shutDown();System.exit(0);}});}}
O BD deve ter o nome ApJava e ser colocado na pasta com nome "Java"
O banco deve ter a tabela TBLDADOS
Muito obrigado mesmo!!!
Vou testa!!
Valeu mesmo pela tua atenção
R
RafaelBgPJ
Cara , não tem como!!
Sempre cai no try Catch(ClassNotFoundException )
org.firebirdsql.jdbc.FBDriver ele não acha o drive.
Será que influi a versão do java?
Estou com a versão jdk1.3.1.
Ja alterei o Classpah de tudo que é forma mas não tem como.
O jeito é troca de banco de dados!!!
M
maluquo1PJ
Vc ta importando o drive pra dentro do projeto? Se voce ta usando o eclipse faz assim… Project - Properties - Java Bild Path - Libraries - Add external JAR e adiciona a seu drive, no meu caso é firebirdsql-full.jar. No stress, vamos fazer esse banco funcionar sim, nem q ele nao queira! :lol:
C
C3pOPJ
iae pessoal blza?
por favor me ajudem
na linha abaixo, o q faz o metodo getNexRow(rs, rsmd)??? :tiros:
linhas.addElement(getNextRow(rs,rsmd));
valeu
M
maluquo1PJ
“C3pO”:
iae pessoal blza?
por favor me ajudem
na linha abaixo, o q faz o metodo getNexRow(rs, rsmd)??? :tiros:
linhas.addElement(getNextRow(rs,rsmd));
valeu
o metodo getNextRow retorna um Vector contendo dados de uma linha do ResultSet, o rs.next() move o cursor do ResultSet para o proximo registro.
R
RafaelBgPJ
maluquo1 muito obrigado deu certo!!!
valeu mesmo!!
Tem um esquema no JDeveloper que tu pode adicionar tb um .jar. Fiz e funcionou muito bem.
Obrigado!!!
B
bethyanKellyPJ
Oi!
Gostei do tópico porque é exatamente o erro que tenho pra conectar o Firebird!
O erro que está dando no momento que chama a conexão é:
Já setei a variável classpath e como estou usando o jbuilder, tentei colocar nas libraries o driver, melhorou mas não deu certo!
Então se puderem me ajudar eu agradeço! (jdk 1.4 e FirebirdSQL-1.5.5JDK_1.4)!!!