Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при подключении к БД Interbase через Java (Interclient) / 12 сообщений из 12, страница 1 из 1
20.09.2017, 10:46
    #39523634
Dr66
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Добрый день.

Пытаюсь подключиться к БД Interbase через Java (Interclient).

К БД, в названии которых нет русских символов, подключается нормально, но если встречается БД, у которой в названии файла русские буквы, то вылетает ошибка:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
java.sql.SQLException: [interclient][interbase]I/O error for file CreateFile (open)"D:/test/Артем.ibs"
[interclient][interbase]Error while trying to open file
null
	at interbase.interclient.Connection.remote_ATTACH_DATABASE(Unknown Source)
	at interbase.interclient.Connection.connect(Unknown Source)
	at interbase.interclient.Connection.<init>(Unknown Source)
	at interbase.interclient.Driver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:208)
	at Main.loadData(Main.java:47)
	at Main.main(Main.java:20)



Чем это лечиться?
...
Рейтинг: 0 / 0
20.09.2017, 10:49
    #39523636
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66Чем это лечиться?
Использованием путей без русских букв.
...
Рейтинг: 0 / 0
21.09.2017, 05:58
    #39524080
Dr66
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Много баз в разных папках уже создано с русскими названиями.
Нужно программно решить этот вопрос. Вручную большой пласт работы.
...
Рейтинг: 0 / 0
21.09.2017, 09:06
    #39524112
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66Много баз в разных папках уже создано с русскими названиями.
То есть они как-то работали до сих пор?
...
Рейтинг: 0 / 0
21.09.2017, 09:33
    #39524130
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
IBExpert к FB2.5 где база с русскими буквами - коннектится нормально.

Алиасы в Interbase есть? Может через них попробовать скрыть кириллицу.
...
Рейтинг: 0 / 0
21.09.2017, 10:23
    #39524170
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66,

уточнил бы, какой InterBase и какой InterClient. С какой-то версии InterClient содран с JayBird от Firebird, и если он работает не через gds32.dll/ibclient64.dll, то могут быть проблемы с тем, как он передает имя файла БД на сервер.
...
Рейтинг: 0 / 0
21.09.2017, 12:14
    #39524285
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66Много баз в разных папках уже создано с русскими названиями.
Нужно программно решить этот вопрос.

Получай короткий (8.3) путь к базе через GetShortPathName() и используй его. Короткий путь
не содержит русских букв. Другого пути... есть, но придётся поменять прокладку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.09.2017, 16:18
    #39524440
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66,

кстати, беру вот InterBase 2017, самую последнюю. В ИБЕ создаю D:/test/Артем.ibs. Создается прекрасно
(кстати, почему это расширение .ibs???).
Коннект проходит норм. Так что причина, видимо, именно в InterClient.
авторТо есть они как-то работали до сих пор?
видимо, раньше на Java ничего не писали.
fraksАлиасы в Interbase есть?
нет. есть рероутинг по портам/инстансам, алиасов в понимании ФБ нет
http://docwiki.embarcadero.com/InterBase/2017/en/Automatic_Rerouting_of_Databases
...
Рейтинг: 0 / 0
22.09.2017, 13:36
    #39524853
Dr66
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
По поводу версии интерклиента:
InterClientVersion=12.0.0
InterClient (InterBase JDBC driver) for JRE 1.6.

По поводу версий БД ничего сказать немогу... не знаю как посмотреть версию БД interbase файла.

Вот что я делаю:

1. Ищу все файлы нужного мне расширения и получаю абсолютный путь к файлу

Код: 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.
public class FindFiles {


    private ArrayList<String> filesIbs = new ArrayList<>();


    public void start(String path) {

        filesIbs.clear();
        // просматриваем папку и подпапки
        findFile(path);

    }


    private void findFile (String path)
    {
            File folder = new File(path);

            // если выбранный элемент не читаем пропускаем все действия
            if (folder.canRead()) {

                // записываем все файлы и папки в массив
                File[] filesAndDirectory = folder.listFiles();
                // проходимся по массиву в поисках новых папок

                for (File i : filesAndDirectory) {
                    if (i.isFile()) {
                        if (i.getAbsolutePath().endsWith(".ibs") && !i.getAbsolutePath().contains("$"))
                            filesIbs.add(i.getAbsolutePath());
                    }
                    // если элемент i является папкой, то запускаем рекурсию
                    else
                        findFile(i.getAbsolutePath());
                }
            }
    }

    public ArrayList<String> getFilesIbs() {
        return filesIbs;
    }


}





2. Потом подключаюсь к каждому найденному файлу где path абсолютный путь

Connection connection = DriverManager.getConnection("jdbc:interbase://localhost/" + path,"SYSDBA", "masterkey");
Statement statement= connection.createStatement();


Dimitry Sibiryakov, как получить короткий путь?
...
Рейтинг: 0 / 0
22.09.2017, 13:51
    #39524864
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66как получить короткий путь?
Настроить альясы.
...
Рейтинг: 0 / 0
22.09.2017, 14:04
    #39524876
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66как получить короткий путь?

Какое слово из "через GetShortPathName()" ты не заметил?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.09.2017, 14:34
    #39524903
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при подключении к БД Interbase через Java (Interclient)
Dr66Dimitry Sibiryakov, как получить короткий путь?

Можно так:

http://dolf.trieschnigg.nl/eightpointthree/eightpointthree.html
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при подключении к БД Interbase через Java (Interclient) / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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