powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Android + FireBird
20 сообщений из 20, страница 1 из 1
Android + FireBird
    #39374470
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветсвую!

Конечно же не любитель клянчить готовые ответы по форумам
но все перепробовал, не помогает. Может быть чего-то упускаю из вида

необходима связка подключение Android + FireBird
среда разработки "Android Studio"
в качестве сервера "Firebird-2.5.5.26952_0_x64.exe"
Среда разработки и сервер развернут на "Windows 7 Enterprise"

предпологается что мобильный клиент на Android будет подключаться через
WiFi по локальной сети к серверу именно поэтому планируется использование jdbc-driver
вариант с использованием веб сервиса пока не планируется, так как приложение
будет работать в локальной сети предприятия без интернета

необходимо считывать содержимое двух таблиц из FireBird в базу SQLite
дальше все будет работать автономно с SQLite на мобильнике с Android

Для подключения к Firebird-2.5 используется пакет "Jaybird-2.2.12-JDK_1.7.zip"
который был скачен с ресурса http://www.firebirdsql.org/en/jdbc-driver/

файлы с этого пакета размещены в папке "libs" исходника проекта

Код: html
1.
2.
D:\Proj\HelloServerExt\app\libs\connector-api-1.5.jar
D:\Proj\HelloServerExt\app\libs\jaybird-2.2.12.jar


Обе библиотеки подключены в проект через через Project ->
HelloServerExt\app\libs\connector-api-1.5.jar
HelloServerExt\app\libs\jaybird-2.2.12.jar
правым кликом " ... Add Library"

ниже приведена содержимое раздела "dependencies"
в файле "D:\Proj\HelloServerExt\app\build.gradle"

Код: java
1.
2.
3.
4.
5.
6.
7.
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile files('libs/jaybird-2.2.12.jar')
    compile files('libs/connector-api-1.5.jar')
}



данная папка так же добавлена в переменную окружения %CLASSPATH%

Код: html
1.
2.
C:\>echo %CLASSPATH%
D:\Proj\HelloServerExt\app\libs\



база Firebird-2.5 находится в "c:\abc.fdb"
содержимое файла "C:\Program Files\Firebird\Firebird_2_5\aliases.conf"


# List of known database aliases
# ------------------------------
#
# Examples:
#
# dummy = c:\data\dummy.fdb
#
abc = c:\abc.fdb


т.е. для подключения используется алиас "abc"

обращение к базе по алиасу реализованно для того что бы исключить недоразумения при подключении
с прямыми и обратными слешами при указании пути к базе, где используеются одинарные /\ где-то двойные \\ //

Пробовал подключиться к базе через "IBExpert" с использованием алиаса - подключение работает

ниже приводится содержимое проекта на "Android Studio"
три файла:

AndroidManifest.xml

Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hfad.helloserverext">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>



activity_main.xml

Код: xml
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.hfad.helloserverext.MainActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:text="192.168.1.50/3050:abc" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Check Database Connection"
        android:id="@+id/btnCheckDatabaseConnection"
        android:onClick="onClick_btnCheckDatabaseConnection"
        android:layout_below="@+id/editText"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView"
        android:layout_below="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="57dp"
        android:layout_alignRight="@+id/btnCheckDatabaseConnection"
        android:layout_alignEnd="@+id/btnCheckDatabaseConnection" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Medium Text"
        android:id="@+id/textView2"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>



MainActivity.java

Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
package com.hfad.helloserverext;

import android.Manifest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telecom.Connection;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.sql.*;
import java.sql.SQLException;
import android.database.*;
import android.widget.Toast;
import java.lang.Object;
import java.sql.DriverManager;
import java.util.Properties;

public class MainActivity extends AppCompatActivity {

    final String LOG_TAG = "myLogs";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    //ВЫЗВАТЬ onClick_btnCheckDatabaseConnection()
    public void onClick_btnCheckDatabaseConnection(View view) {

        TextView tv       = (TextView) findViewById(R.id.textView);
        EditText path     = (EditText) findViewById(R.id.editText);
        TextView tv_path  = (TextView) findViewById(R.id.textView2);

        String DriverName  = "org.firebirdsql.jdbc.FBDriver" ;
        String databaseURL = "jdbc:firebirdsql://" + path.getText().toString();
        String login       = "SYSDBA";
        String password    = "masterkey";
        Connection connect;

        tv_path.setText(databaseURL);

        try {
            Class.forName(DriverName);
            connect = (Connection) DriverManager.getConnection(databaseURL,login,password);
            Toast.makeText(MainActivity.this, "Database Driver loaded", Toast.LENGTH_LONG).show();
            tv.setText("Database Driver loaded");
        } catch (Exception e)
        {
            tv.setText(e.getMessage());
            Toast.makeText(MainActivity.this, "Database Driver NOT FOUND", Toast.LENGTH_LONG).show();
        }

    }

}




если закоментировать строку "connect"

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        try {
            Class.forName(DriverName);
//            connect = (Connection) DriverManager.getConnection(databaseURL,login,password);
            Toast.makeText(MainActivity.this, "Database Driver loaded", Toast.LENGTH_LONG).show();
            tv.setText("Database Driver loaded");
        } catch (Exception e)
        {
            tv.setText(e.getMessage());
            Toast.makeText(MainActivity.this, "Database Driver NOT FOUND", Toast.LENGTH_LONG).show();
        }



приложение в эмуляторе запускается, кнопка нажимается ошибок не наблюдается

а со строкой "connect"

Код: java
1.
connect = (Connection) DriverManager.getConnection(databaseURL,login,password);



уходит в рантайм, вот логи logcat



12-24 17:48:09.065 2354-2449/com.hfad.helloserverext E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb40964b0
12-24 17:48:16.629 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.633 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBXAException>
12-24 17:48:16.633 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jdbc.FBDataSource>
12-24 17:48:16.633 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jdbc.FBDataSource>
12-24 17:48:16.633 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.634 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.637 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.637 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.639 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.640 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.643 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.644 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBXAException>
12-24 17:48:16.647 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.647 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.648 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.655 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.656 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.657 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jca.FBManagedConnection>
12-24 17:48:16.661 2354-2354/com.hfad.helloserverext I/art: Rejecting re-init on previously-failed class java.lang.Class<org.firebirdsql.jdbc.FBDataSource>
12-24 17:48:16.661 2354-2354/com.hfad.helloserverext D/AndroidRuntime: Shutting down VM
12-24 17:48:16.675 2354-2364/com.hfad.helloserverext W/art: Suspending all threads took: 12.980ms

--------- beginning of crash
12-24 17:48:16.675 2354-2354/com.hfad.helloserverext E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.hfad.helloserverext, PID: 2354
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:289)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5198) 
at android.view.View$PerformClick.run(View.java:21147) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NoClassDefFoundError: org.firebirdsql.jdbc.FBDataSource
at org.firebirdsql.jca.FBManagedConnectionFactory.createConnectionFactory(FBManagedConnectionFactory.java:479)
at org.firebirdsql.jdbc.AbstractDriver.createDataSource(AbstractDriver.java:153)
at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:134)
at java.sql.DriverManager.getConnection(DriverManager.java:179)
at java.sql.DriverManager.getConnection(DriverManager.java:213)
at com.hfad.helloserverext.MainActivity$override.onClick_btnCheckDatabaseConnection(MainActivity.java:47)
at com.hfad.helloserverext.MainActivity$override.access$dispatch(MainActivity.java)
at com.hfad.helloserverext.MainActivity.onClick_btnCheckDatabaseConnection(MainActivity.java:0)
at java.lang.reflect.Method.invoke(Native Method) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 
at android.view.View.performClick(View.java:5198) 
at android.view.View$PerformClick.run(View.java:21147) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 


--------- beginning of system
12-24 17:48:20.040 2354-2354/com.hfad.helloserverext I/Process: Sending signal. PID: 2354 SIG: 9



Конфигурация сети следующая:

IP адрес описание устройстваlocalhostкомпьютер разработчика с установленным "Android Studio" с установленным Firebird-2.5192.168.1.1роутоер беспроводной TP-Link192.168.1.10компьютер разработчика с установленным "Android Studio" (тоже самое что и localhost)192.168.1.20тестовое физическое устройство - смартфон с Андроидом192.168.1.50тестовый компьютер в сети с установленным Firebird-2.5

с эмулятора Андроид и телефона Андроид (с адресом 192.168.1.20) запускал браузер
адресом 192.168.1.1 - появляется стартовая страница роутера

команда Ping отрабатывает на все стороны
на компьютерах 192.168.1.10 и 192.168.1.50 Windows FairWall отключен
антивирусы тоже временно отключены, т.е. порты открыты

IBExpert без проблем подключается к базам на двух серверах
а с приложения Андроид ничего не получается

по поводу строк подключения
проверял разные варианты так как прописано в мануале
"Jaybird_2_1_JDBC_driver_manual.pdf"
"jdbc:firebirdsql:localhost/3050:c:/db/employee.fdb"
с адресами:


Код: plaintext
1.
2.
3.
4.
5.
jdbc:firebirdsql:localhost/3050:abc
jdbc:firebirdsql:192.168.1.10/3050:abc
jdbc:firebirdsql:192.168.1.50/3050:abc
jdbc:firebirdsql://192.168.1.10/3050:abc
jdbc:firebirdsql://192.168.1.50/3050:abc


пробовал так же подключаться с указанием абсолютного пути к базе

Код: plaintext
1.
2.
3.
4.
c:\abc.fdb 
c:\\abc.fdb 
c:/abc.fdb 
c://abc.fdb 


Вопрос:
в чем может быть проблема со строкой connect ?
Код: java
1.
connect = (Connection) DriverManager.getConnection(databaseURL,login,password);



почему приложение тупо закрывается и уходит в рантайм, даже эксепшены не выходят
эксепшены выходят только в случае если не срабатывает Class.forName(DriverName) в том случае,
если не установлены библиотеки Jaybird


пробовал так же отдельно запускать connect через конструкцию
Код: java
1.
try { connect ...} catch (Exception e) { Toast ... }


или
Код: java
1.
try { connect ...} catch (SQLException e) { Toast ... }



так же вываливается в рантайм

может быть что-то не так с permission в файле AndroidManifest.xml
или не верно установлена библиотека Jaybird

или все таки имеет смысл отказаться от использования jdbc-driver в мобильных приложениях
в каких-то материалах упоминается что jdbc-driver лучше использовать в десктопных приложениях в среде NetBeans

Кто-нибудь сталкивался с подобной ситуацией ?
...
Рейтинг: 0 / 0
Android + FireBird
    #39374530
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779jdbc:firebirdsql:localhost/3050:abc
jdbc:firebirdsql:192.168.1.10/3050:abc
jdbc:firebirdsql:192.168.1.50/3050:abc

1. ну какой еще localhost ???
2. 10 и 50 - это статические адреса компов с работающим firebird? на которых есть алиас abc?
...
Рейтинг: 0 / 0
Android + FireBird
    #39374548
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv2. 10 и 50 - это статические адреса компов с работающим firebird? на которых есть алиас abc?

Дим, у него до коннекта не доходит, можешь даже не смотреть.

Насколько я помню, на ведроиде свой, несколько несовместимый со стандартным байт-код у
Явы, поэтому обычные сборки драйвера там работать не могут в принципе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Android + FireBird
    #39374553
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Тогда надо Иржи спрашивать.
...
Рейтинг: 0 / 0
Android + FireBird
    #39374569
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvТогда надо Иржи спрашивать.
Дим, тебе не к лицу пьянствовать в католическое рождество. Какой, нафиг, Иржи, у Jaybird-а?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Android + FireBird
    #39374571
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

не пьянствую, просто перепутал. для меня что jaybird, что .net - одна хрень.
...
Рейтинг: 0 / 0
Android + FireBird
    #39374573
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779,

хоть эта тема мне не очень интересна, я за 5 минут углядел, что jaybird под андроид в 2013 году был сделан в виде отдельного порта
https://sourceforge.net/projects/androidjaybird/files/
и это была версия 2.2.4. Видимо, были причины.

так что, об этом нужно спрашивать Mark Rotteveel.
...
Рейтинг: 0 / 0
Android + FireBird
    #39374649
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,
автор1. ну какой еще localhost ???
2. 10 и 50 - это статические адреса компов с работающим firebird? на которых есть алиас abc?

1. по своей наивности предпологал что localhost на эмуляторе будет обращаться к компьютеру разработчика, конечно же на физическом устройстве обращаться к localhost - это несоизмеримая глупость
2. да 10 и 50 статические адреса компов с работающим firebird на которых имеется алиас abc
...
Рейтинг: 0 / 0
Android + FireBird
    #39374653
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

kdvхоть эта тема мне не очень интересна, я за 5 минут углядел, что jaybird под андроид в 2013 году был сделан в виде отдельного порта
https://sourceforge.net/projects/androidjaybird/files/
и это была версия 2.2.4. Видимо, были причины.

так что, об этом нужно спрашивать Mark Rotteveel.


очень ценное замечание!
Буду копать в этом направлении, о результатах сообщу позже
так как придется перенастраивать среду разработки на JDK 1.6 у меня сейчас все развернуто на JDK 1.8

Dimitry_SibiryakovНасколько я помню, на ведроиде свой, несколько несовместимый со стандартным байт-код у
Явы, поэтому обычные сборки драйвера там работать не могут в принципе.


Верно подмечено

Mark_RotteveelThere is only support for JDK 1.6.
JDK 1.7 isn't fully supported by Android's dalvik

поэтому и буду перенастраивать среду разработки на базе JDK 1.6
...
Рейтинг: 0 / 0
Android + FireBird
    #39374835
rstrelba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в своё время решил эту задачу так. На сервере скриптом, написанным на delphi генерируется база sqlite из таблиц FB , а девайс просто загружает эту базу к себе.
...
Рейтинг: 0 / 0
Android + FireBird
    #39374844
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.С., Вы на жабе?
там, ЕМНИП, вроде же есть встроенные средства для работы с JSON, как-то даже видел в интернетах пример получения массива из JSON-строки в одну строчку.

--------
я столкнулся с Вашей проблемой полтора года назад, но мне требовалось что-то похожее на режим реального времени работы с базой подобно тому, как работает сетевой коннект в приложении для ПК.

в итоге после нескольких недель секса решил пойти другим путём:
1) на сервере баз данных параллельно ставиться Апач+ПыхПых.
2) пишутся скрипты на ПыхПых, которые получают данные для запроса, вносят их в базу (если надо) и возвращают новые данные.
3) всё туда-сюда гоняется в виде JSON формата, который парсится и в ПыхПых, и в клиентском приложении.
4) приложение для Ведроида по сути становится HTTP-клиентом к Апачу, а вот Апач посредством ПыхПых уже работает с базой.

что ещё можно добавить:
1) посмотрите технологию REST, там по сути то же самое, только стандартизировано.
2) гигантские справочники или журналы можно при передаче паковать хоть тем же ZIP.
3) при такой постановке вопроса подумать: а надо ли локально хранить данные в sqlite и для чего?

оговорка:
приложение для Ведроида писалось на языке, который здесь никто не знает (с) .
...
Рейтинг: 0 / 0
Android + FireBird
    #39374853
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779,

dalvik уже умер, с 5-го андроида - ART.
...
Рейтинг: 0 / 0
Android + FireBird
    #39375341
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvхоть эта тема мне не очень интересна, я за 5 минут углядел, что jaybird под андроид в 2013 году был сделан в виде отдельного порта
https://sourceforge.net/projects/androidjaybird/files/
и это была версия 2.2.4. Видимо, были причины.

так что, об этом нужно спрашивать Mark Rotteveel.

Причина скорее всего или "кто-то попросил" или "было интересно", с тех пор никому было не нужно

MR активно переписывается на StackOverflow и Yahoo MailLists
...
Рейтинг: 0 / 0
Android + FireBird
    #39375347
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Wadman!
You wrote on 26 декабря 2016 г. 15:03:30:

Wadman> dalvik уже умер, с 5-го андроида - ART.и шо делать тем, кто до сих пор сидит на 2.3.Х ?

зы: гугель == ЗЛО
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Android + FireBird
    #39375361
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийи шо делать тем, кто до сих пор сидит на 2.3.Х ?
Не пользоваться на нем firebird-ом.
...
Рейтинг: 0 / 0
Android + FireBird
    #39375366
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Wadman!
You wrote on 26 декабря 2016 г. 15:16:24:

Wadman> Не пользоваться на нем firebird-ом.ты на циферки не обратил внимание ;)

зы: я и Ораклом на нём тоже не пользуюсь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Android + FireBird
    #39375397
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийты на циферки не обратил внимание ;)
Напуган был.
...
Рейтинг: 0 / 0
Android + FireBird
    #39376362
Vladimir779
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется разобрался во всем, что касается примера от "Mark Rotteveel"
kdvхоть эта тема мне не очень интересна, я за 5 минут углядел, что jaybird под андроид в 2013 году был сделан в виде отдельного порта
https://sourceforge.net/projects/androidjaybird/files/
и это была версия 2.2.4. Видимо, были причины.

так что, об этом нужно спрашивать Mark Rotteveel.

не смог развернуть среду разработки "Android Studio" под "JDK 1.6" - но установил себе на смартфон готовое приложение "NBAndroid Example-debug.apk" и все таки смог подключится к базе на своем компьютере со строкой подключения

пришлось перебить свой IP адрес на 192.168.0.102
и подложить базу по адресу "C:\Program Files (x86)\Firebird\Firebird_2_5\examples\empbuild\EMPLOYEE.FDB"

Код: java
1.
2.
3.
//Get connection
String sCon = "jdbc:firebirdsql:192.168.0.102:C:\\Program Files (x86)\\Firebird\\Firebird_2_5\\examples\\empbuild\\EMPLOYEE.FDB";
Connection con = DriverManager.getConnection(sCon, "SYSDBA", "masterkey");



вот содержимое файла MainActivity.java


Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
package com.hfad.helloserverext;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import java.util.SortedMap;
// import org.apache.http.util.ExceptionUtils;
// import org.firebirdsql.logging.*;

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try
        {
            //aktivate logging over adb (optional)
            System.setProperty("FBAdbLog", "true");

            //register Driver
            Class.forName("org.firebirdsql.jdbc.FBDriver");

            //Get connection
            String sCon = "jdbc:firebirdsql:192.168.0.102:C:\\Program Files (x86)\\Firebird\\Firebird_2_5\\examples\\empbuild\\EMPLOYEE.FDB";
            Connection con = DriverManager.getConnection(sCon, "SYSDBA", "masterkey");

            //Query (get Table Count)
            String sSql = "SELECT COUNT(*) AS TableCount FROM rdb$relations WHERE rdb$view_blr IS NULL and (rdb$system_flag IS NULL OR rdb$system_flag = 0)";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(sSql);

            if(rs.next())
            {
                int iTableCount = rs.getInt("TableCount");
                AlertDialog msgbox = new AlertDialog.Builder(this).create();
                msgbox.setMessage("There are " + iTableCount + " Tables");
                msgbox.show();
            }else
                Log.e("FirebirdExample", "Empty Resultset");

        }catch(Exception ex)
        {
            Toast.makeText(MainActivity.this, "Database Driver NOT FOUND", Toast.LENGTH_LONG).show();
            Log.e("FirebirdExample", ex.getMessage());
        }
    }
}




Отказался от затеи использовать jaybird для Андроида
так как дравер "Jaybird2_2_4.jar" требует компиляции под "JDK 1.6" а современный "Android Studio" (say goodbye to Eclipse) требует минимально "JDK 1.7"

тем более
Wadmandalvik уже умер, с 5-го андроида - ART.

буду пользоваться советом
PEAKTOPв итоге после нескольких недель секса решил пойти другим путём:
1) на сервере баз данных параллельно ставиться Апач+ПыхПых.
2) пишутся скрипты на ПыхПых, которые получают данные для запроса, вносят их в базу (если надо) и возвращают новые данные.
3) всё туда-сюда гоняется в виде JSON формата, который парсится и в ПыхПых, и в клиентском приложении.
4) приложение для Ведроида по сути становится HTTP-клиентом к Апачу, а вот Апач посредством ПыхПых уже работает с базой.
тем более надыбал примеров
http://devcolibri.com/1486
http://devcolibri.com/1548
на базе MySQL уже отработал на своей тестовой машине и смартфоне
осталось тольк подключить расширение на FireBird - в целях обучения
а потом уже применить полученные знания и опыт под свой проект

Хотя конечно же имеет смысл отписаться "Mark Rotteveel" так как задача достаточно актуальная и было бы хорошо, если бы эта линия так же поддерживалась своевременно

Если будут альтернативные варианты подключения с приложения на мобильной платформе Андроид к базе FireBird, всегда готов обсудить

Всем спасибо !
...
Рейтинг: 0 / 0
Android + FireBird
    #39377206
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir779так как задача достаточно актуальная

была бы она актуальная - был бы и кто-нибудь, кто поддерживает....
...
Рейтинг: 0 / 0
Android + FireBird
    #39505447
Konrads
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё разобрали тут: http://www.sql.ru/forum/893214-7/android-firebird
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Android + FireBird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]