OLá, esotu tentando conectar uma aplicação java ao firebird, consigo abrir o banco em pragramas administrativos mas quando tento rodar o programa aparece o seguinte erro
Resource Exception. I/O error during "open" operation for file "/root/projetos/dados/dbconf.gdb"
Error while trying to open file
null
Reason: I/O error during "open" operation for file "/root/projetos/dados/dbconf.gdb"
Error while trying to open file
null
Error Code: 335544344
SQL State: null
aí vai o Chuncho, digo Código:
public class conecta_banco {
private static final String databaseURL = "jdbc:firebirdsql:10.0.0.3/3050:/root/projetos/dados/dbconf.gdb";
private static final String user = "sysdba";
private static final String password = "masterkey";
private static final String driverName = "org.firebirdsql.jdbc.FBDriver";
private static Driver d = null;
private static Connection c = null;
private static Statement s = null;
private static ResultSet rs = null;
private static PreparedStatement ps = null;
private int ChavePrimaria = 0;
public int GetProximo(String Campo, String Tabela){
try {
getConexao();
executa_select("Select Max("+Campo+") as Ultimo from "+Tabela);
getResultSet().next();
return getResultSet().getInt("Ultimo") + 1;
}
catch(SQLException e ){
return 0;
}
}
/**
* Retorna a Conexão pronta para a execução de SQL
* @return
*/
public Connection getConexao(){
return c;
}
/**
* Seta a Chave Primaria
* @param chavePrimaria
*/
public void setChavePrimaria(int chavePrimaria) {
ChavePrimaria = chavePrimaria;
}
/**
* Retorna a ChavePrimaria
* @return
*/
public int getChavePrimaria() {
return ChavePrimaria;
}
/**
* Insere um registro em determinada tabela
*
*/
public void InserirRegistro(){
try {
ps.execute();
}
catch(SQLException e){}
}
/**
* Realiza um Update num determinado registro
*
*/
public void AtualizarRegistro(){
try {
ps.executeUpdate();
}
catch(SQLException e){}
}
/**
* Passa parametros com ponto flutuante para as açoes SQL
* @param Indice
* @param Valor
*/
public void PassaParametroReal(int Indice, float Valor){
try {
ps.setFloat(Indice,Valor);
}
catch(SQLException e) {}
}
/**
* Passa parametros com valor Inteiro para as açoes SQL
* @param Indice
* @param Valor
*/
public void PassaParametroInteiro(int Indice, int Valor){
try {
ps.setInt(Indice,Valor);
}
catch(SQLException e) {}
}
/**
* Passa parametros String para as ações SQL
* @param Indice
* @param Valor
*/
public void PassaParametroData(int Indice, Date Valor) {
try {
ps.setDate(Indice,Valor);
}
catch (SQLException e) {}
}
public void PassaParametroString(int Indice, String Valor){
try {
ps.setString(Indice,Valor);
}
catch(SQLException e) {}
}
/**
* retorna um Result Set para que se possa manipular os dados
* resultantes de um Select
* @return
*/
public ResultSet getResultSet(){
return rs;
}
public conecta_banco() {
super();
// TODO Auto-generated constructor stub
}
public void executa_conexao(){
d = new org.firebirdsql.jdbc.FBDriver();
try {
d = java.sql.DriverManager.getDriver (databaseURL);
}
catch (java.sql.SQLException e) {
System.out.println ("O sistema não conseguiu encontrar os drivers registrados: Firebird JCA-JDBC");
showSQLException(e);
return;
}
try {
c = java.sql.DriverManager.getConnection (databaseURL, user, password);
//System.out.println ("Conexão Estabelecida.");
}
catch (java.sql.SQLException e) {
System.out.println ("Não Pode estabelecer uma Conexão com o Administrador do Driver");
showSQLException(e);
return;
}
}
/**
* Prepara Declaração para ser interpretada pelo ResultSet
* @param sql
*/
public void PreparaStatement(String sql){
try {
ps = c.prepareStatement(sql);
}
catch(SQLException E){}
}
public void executa_sql(String sql){
try {
s= c.createStatement();
s.executeUpdate(sql);
} catch (SQLException e) {
showSQLException(e);
}
}
/**
* Executa os selects no sistema
* @param sql
* @return
*/
public void executa_select(String sql){
try {
s = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = s.executeQuery(sql);
} catch (SQLException e) {
showSQLException(e);
}
}
public static void main(String[] args)
{
conecta_banco conexao = new conecta_banco();
}
/**
* Lista e imprime todas as excessões de SQL
* encontradas durante a execução das rotinas
* @param e
*/
private static void showSQLException (java.sql.SQLException e)
{
java.sql.SQLException next = e;
while (next != null) {
System.out.println (next.getMessage ());
System.out.println ("Error Code: " + next.getErrorCode ());
System.out.println ("SQL State: " + next.getSQLState ());
next = next.getNextException ();
}
}
}