Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > InterBase подключение БД к приложению


Автор: CPlusPlusFAN 29.4.2008, 23:00
Здравствуйте!
У меня есть БД (HIRE_FILMS.gdb) на InterBase 6.0. Необходимо подключиться к ней средствами Java. Скорость не имеет значения, поскольку я сдаю задачу и мне главное, чтобы легко подключалось (учитывая, что у меня нет прав админа), не требовало серьёзной настройки и выполняла запросы. Посоветуйте драйвер и, если не затруднит, киньте ссылку.

ЗЫ Можно пошагово расписать действия для настройки соединения?

ЗЫЫ Я уже качал InterClient, кидал его в jre1.6.0\lib\ext. Вроде загружается, но при соединении выдаёт ошибку сокета.
Также качал Jaybird-2.1.3, но он слишком замороченный и там настроек много. Кроме того, пришлось его руками собирать, и при подключении выдавал ошибку "Cannot find suitable driver for ...".

Автор: Maksym 30.4.2008, 11:30
CPlusPlusFAN
Какую ошибку выдает драйвер? Код как соединялся?

Автор: CPlusPlusFAN 30.4.2008, 13:20
Для InterClient:

Код

Class.forName("interbase.interclient.Driver");
...
//Прописывается абсолютный путь к БД
conn=DriverManager.getConnection("jdbc:interbase://localhost/"+DBAbsoluteName,login,password);
...


Вот, что выводит:

http://ipicture.ru/

Автор: Maksym 30.4.2008, 14:43
CPlusPlusFAN
Там наверняка еще порт надо указать: jdbc:interbase://<host name>:<host port>/<database> 
дефолт для interbase кажется 3050 или 3060...

Автор: CPlusPlusFAN 30.4.2008, 15:12
Цитата(Maksym @  30.4.2008,  14:43 Найти цитируемый пост)
CPlusPlusFAN
Там наверняка еще порт надо указать: jdbc:interbase://<host name>:<host port>/<database> 
дефолт для interbase кажется 3050 или 3060...


То же самое выводит. Вроде говорят, что нужно ещё и какой-то InterServer запускать. Но я знать-не знаю, что это такое.  smile 

Автор: Maksym 30.4.2008, 15:37
CPlusPlusFAN
Ээээ ну само собой Interbase Server должен быть запущен... иначе к чему коннектится то?

И InterClient должен быть запущен, это какая-то мулька специфичная только для Interbase. Вот в нашем форуме по Базам данных нашел об InterClient:
Цитата(Akella @  5.7.2005,  09:26 Найти цитируемый пост)
Насколько помню (года три назад чуть игрался) - это для доступа из Java. Просто часть "переходника" решили сделать сервером. Занимается в основном физическим преобразованием и приспособлением протоколов, существенно картину не меняет.


Добавлено через 1 минуту и 35 секунд
То есть чтобы к запущенному Interbase Server'у подсоединится из jdbc драйвера, надо запустить рядом с сервером InterClient и подключаться через него.

Добавлено через 2 минуты и 46 секунд
Попробуй спросить у народа http://forum.vingrad.ru/forum/Interbase-database.html.

Автор: CPlusPlusFAN 2.5.2008, 20:35
Вот я код подправил:
Код

import interbase.interclient.DataSource;

import java.sql.SQLException;

public class Main
{
    public static void main(String[] args)
    {
        DataSource ds=new DataSource();
        ds.setServerName("localhost");
        ds.setDatabaseName("C:\\HIRE_FILMS.GDB");
        ds.setDataSourceName("db");
        ds.setPortNumber(3050);
        ds.setNetworkProtocol("jdbc:interbase:");
        
        try
        {
            ds.setLoginTimeout(100);
            ds.getConnection("sysdba","masterkey");
            System.out.print("OK");
        }
        catch (SQLException e)
        {
            System.out.println(e.getMessage());
        }
    }

}


Было дело в порте. Теперь коннектится... И вылетает по таймауту. В общем виснет.
Если я во время коннекта вырубаю сервер, во что в консоль пишет:

Цитата

[interclient] Установленные версии InterClient и InterServer используют несовместимые версии протоколов клиент-сервер.
Описание исключения interbase.interclient см. в справочнике по API.BadInstallationException


Очевидно, версии не соответствуют. Где можно скачать InterClient для InterBase 6.0?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)