Problema ao abrir conexão via jdbc do firebird (jaybird)

261 views
Skip to first unread message

Felipe Ramon Silveira Neves

unread,
Jan 29, 2014, 7:09:27 AM1/29/14
to androidb...@googlegroups.com
Boa tarde, estou tendo problemas ao abrir conexão ao meu banco de dados do firebird pelo android. Meu primeiro teste foi usando MySql e ocorreu tudo normalmente, tentei migrar para o firebird mas não estou conseguindo abrir conexão.

Estou fazendo a conexão pela AsyncTask usando o JDBC port do Firebird para android (Jaybird2_2_4).
*Deixando claro que é apenas para estudo, não havendo a possibilidade de um webservice, apenas conexão direta.

        codigo = ""+edit[0].getText();
        codigo = String.format("%14s", codigo).replace(' ', '0');
        System.err.println("Codigo selecionado : "+codigo);
        String query = "SELECT DS_PRO FROM PRODUTO WHERE CD_PRO = '"+codigo+"'";
        try{
            Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
            System.err.println("jdbc created");
        }catch(Exception e){
            System.err.println("Cannot create connection");
        }

        try{
        Properties props = new Properties();
        props.setProperty("user", "POINTER");
        props.setProperty("password", "senhabd");
        props.setProperty("encoding", "WIN1252");
            try{
            System.err.println("creating connection");
                java.sql.Connection connection = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:c:/Fenix/FENIX.FDB",props);
                System.err.println("created connection");
            }
            catch(Exception e){
                System.err.println(e.getMessage());
            }
        }
        catch(Exception e){
            System.err.println(e.getMessage());
        }

Esse é o código que estou utilizando.
A mensagem do logcat que estou tendo é essa:

01-29 09:22:44.774: W/System.err(28820): jdbc created
01-29 09:22:44.774: W/System.err(28820): creating connection
01-29 09:22:44.974: E/AndroidRuntime(28820): FATAL EXCEPTION: AsyncTask #3
01-29 09:22:44.974: E/AndroidRuntime(28820): Process: com.example.testeconnection, PID: 28820
01-29 09:22:44.974: E/AndroidRuntime(28820): java.lang.RuntimeException: An error occured while executing doInBackground()
01-29 09:22:44.974: E/AndroidRuntime(28820): at android.os.AsyncTask$3.done(AsyncTask.java:300)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
01-29 09:22:44.974: E/AndroidRuntime(28820): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.lang.Thread.run(Thread.java:811)
01-29 09:22:44.974: E/AndroidRuntime(28820): Caused by: java.lang.ExceptionInInitializerError
01-29 09:22:44.974: E/AndroidRuntime(28820): at org.firebirdsql.jdbc.FBDriverPropertyManager.<clinit>(FBDriverPropertyManager.java:142)
01-29 09:22:44.974: E/AndroidRuntime(28820): at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:103)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.sql.DriverManager.getConnection(DriverManager.java:179)
01-29 09:22:44.974: E/AndroidRuntime(28820): at com.example.testeconnection.BdConnect.doInBackground(BdConnect.java:55)
01-29 09:22:44.974: E/AndroidRuntime(28820): at com.example.testeconnection.BdConnect.doInBackground(BdConnect.java:1)
01-29 09:22:44.974: E/AndroidRuntime(28820): at android.os.AsyncTask$2.call(AsyncTask.java:288)
01-29 09:22:44.974: E/AndroidRuntime(28820): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
01-29 09:22:44.974: E/AndroidRuntime(28820): ... 4 more
01-29 09:22:44.974: E/AndroidRuntime(28820): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Set java.util.Properties.entrySet()' on a null object reference
01-29 09:22:44.974: E/AndroidRuntime(28820): at org.firebirdsql.jdbc.FBConnectionHelper.loadDpbParameterTypes(FBConnectionHelper.java:289)
01-29 09:22:44.974: E/AndroidRuntime(28820): at org.firebirdsql.jdbc.FBConnectionHelper.<clinit>(FBConnectionHelper.java:106)
01-29 09:22:44.974: E/AndroidRuntime(28820): ... 11 more


Alguém saberia me dizer o motivo do erro?

Rômulo Nadler

unread,
Jan 30, 2014, 7:31:02 AM1/30/14
to androidb...@googlegroups.com
Felipe,

Pode me passar como conseguiu a conexão com o mysql, não estou conseguindo.

Abs


2014-01-29 Felipe Ramon Silveira Neves <felipe....@gmail.com>:

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Cleber - Android Developer

unread,
Jan 30, 2014, 9:10:01 AM1/30/14
to androidb...@googlegroups.com
acho que seu problema esta no endereço do firebird 

jdbc:firebirdsql:localhost/3050:c:/Fenix/FENIX.FDB

muda o "localhost" para o endereço do servidor de dados. Outra coisa, não necessita de colocar a porta na url, somente se a porta for diferente de 3050. utilizo da seguinte forma

192.168.0.100:\\pasta\\nomebanco.fdb (conexão servidor windows)
192.168.0.100:/pasta/nomebanco.fdb (conexão servidor linux)

lembrando que o Android por ter a base é case Linux, logo case sensitive colocar o caminho com todas as letras maiúsculas e minusculas. 


2014-01-30 Rômulo Nadler <romulo...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages