Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 49
1

Android + Firebird

15.07.2013, 08:18. Показов 4333. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет !

Пытаюсь подключиться к БД Firebird из программки под Android.
Здесь - http://www.firebirdnews.org/?p=8620 пишут, что всё должно работать и примерчик имеется для NB.
Эмулятор андроида для NB не смог найти. Попробывал тоже самое в Eclipse, jar файл драйвера взял из примера.

Вот кусок кода где происходит обращение к базе:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    public void myClick(View v){
            TextView tvOut = (TextView) findViewById(R.id.textView1);
            Button btn = (Button) findViewById(v.getId());
        
            tvOut.setText("Кот 1");
            Toast toast = Toast.makeText(getApplicationContext(), 
                    "Кормим кота 1", Toast.LENGTH_SHORT); 
            toast.show();   
            
            try {
                Class.forName("org.firebirdsql.jdbc.FBDriver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                toast = Toast.makeText(getApplicationContext(), 
                        "Котяра издох 1", Toast.LENGTH_SHORT); 
                toast.show();             
            }   
        
            tvOut.setText("Кот 2");
            toast = Toast.makeText(getApplicationContext(), 
                    "Кормим кота 2", Toast.LENGTH_SHORT); 
            toast.show();   
                    
//          String sCon = "jdbc:firebirdsql:192.168.0.97/3050:c:\\bases\\basereal.fdb";
            String sCon = "jdbc:firebirdsql:192.168.0.97/3050:figa";
 
 
            try {
                Connection aConnection = DriverManager.getConnection(sCon, "SYSDBA", "masterkey");
            } catch (SQLException e) {
                e.printStackTrace();
                toast = Toast.makeText(getApplicationContext(), 
                        "Котяра издох 2", Toast.LENGTH_SHORT); 
                toast.show();             
            }
            
 
    }
Ошибка происходит при выполнении строки Connection aConnection = DriverManager.getConnection(sCon, "SYSDBA", "masterkey")
Логи:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
07-12 05:05:35.873: W/System.err(1089): java.sql.SQLException: No suitable driver
07-12 05:05:35.913: W/System.err(1089): at java.sql.DriverManager.getConnection(DriverManager.java:182)
07-12 05:05:35.913: W/System.err(1089): at java.sql.DriverManager.getConnection(DriverManager.java:209)
07-12 05:05:35.932: W/System.err(1089): at com.example.fbtest.MainActivity.myClick(MainActivity.java:87)
07-12 05:05:35.932: W/System.err(1089): at java.lang.reflect.Method.invokeNative(Native Method)
07-12 05:05:35.964: W/System.err(1089): at java.lang.reflect.Method.invoke(Method.java:511)
07-12 05:05:35.964: W/System.err(1089): at android.view.View$1.onClick(View.java:3594)
07-12 05:05:35.964: W/System.err(1089): at android.view.View.performClick(View.java:4204)
07-12 05:05:35.964: W/System.err(1089): at android.view.View$PerformClick.run(View.java:17355)
07-12 05:05:35.992: W/System.err(1089): at android.os.Handler.handleCallback(Handler.java:725)
07-12 05:05:36.003: W/System.err(1089): at android.os.Handler.dispatchMessage(Handler.java:92)
07-12 05:05:36.012: W/System.err(1089): at android.os.Looper.loop(Looper.java:137)
07-12 05:05:36.012: W/System.err(1089): at android.app.ActivityThread.main(ActivityThread.java:5041)
07-12 05:05:36.022: W/System.err(1089): at java.lang.reflect.Method.invokeNative(Native Method)
07-12 05:05:36.033: W/System.err(1089): at java.lang.reflect.Method.invoke(Method.java:511)
07-12 05:05:36.052: W/System.err(1089): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-12 05:05:36.052: W/System.err(1089): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-12 05:05:36.052: W/System.err(1089): at dalvik.system.NativeStart.main(Native Method)
Тоже самое в Java - работает отлично, а для андроид - какая то засада прямо, и непонятно что делать.
Подскажите знающие люди, в какую сторону гребсти то?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2013, 08:18
Ответы с готовыми решениями:

Как подключиться с базе данных FireBird из Android
Всем привет, ребят кто нить сталкивался с такой задачей?. Смысл в том, что есть база данных...

Откуда берутся атрибуты android:layout_width и android:layout_height в элементе LinearLayout?
Недавно начал изучать Android API, а сегодня более менее разобрал основы синтакиса XML. Затем стал...

Работа с файлами android которые находятся не в папке проекта Android Studio
Всех приветствую, начал разработку приложения под Android и не могу разобраться как работать с...

Не предлагается установка Android SDK при установке Android Studio
на сайте https://developer.android.com/studio/... скачал exeшник для установки Android Studio....

2
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.07.2013, 10:20 2
как jar подключали?
0
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 49
16.07.2013, 08:50  [ТС] 3
Этот вопрос изучил и опробовал в разных вариантах.
Для работы в Java проекте, достаточно в свойстве проекта Java Build Path добавить jar-файл драйвера и всё будет работать.
Для андроида такой номер не проходит. Если сделать так - ошибка появляется уже на строчке:
Class.forName("org.firebirdsql.jdbc.FBDriver")

Здесь всё проще, кидаем jar в каталог libs и заново открываем проект. Библиотека драйвера автоматом окажется в "Android Private Libraries".

Это всё что я смог проанализировать самостоятельно, дальше - тупик.

Добавлено через 21 час 34 минуты
Есть у меня такая мысль - может порт 3050 в андроиде по умолчанию закрыт? Если да, то как его открыть?

Добавлено через 42 минуты
Ещё один вопрос. Вместе с jar файлом имеется каталог armeabi c двумя файлами:
libgnustl_shared.so
libjaybirdJniLibrary.so
Я этот каталог тоже тупо закидываю в libs, а может его как нибудь нужно тоже регистрировать?
0
16.07.2013, 08:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2013, 08:50
Помогаю со студенческими работами здесь

Android Studio не находит функцию TextView в пакете Android.Widget
Я создал новый проект в Android Studio. Android Studio не находит функцию TextView в пакете...

Android studio, как запускать программу сразу на android смартфоне подключенному к usb?
android studio, как запускать программу сразу на android смартфоне подключенному к usb?

Ошибка: Caused by Android java.lang.ClassCastException: android.app.Application cannot be cast
Здравствуйте. Очень нужен ваш совет. При запуске приложения появляется ошибка: Caused by:...

Android NDK. Как пользоваться? Когда стоит использовать его вместо Android SDK?
Можно ли писать в нем готовые приложения Android?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru