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

Пытаюсь подключиться к БД 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
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39523636
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr66Чем это лечиться?
Использованием путей без русских букв.
...
Рейтинг: 0 / 0
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39524080
Dr66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Много баз в разных папках уже создано с русскими названиями.
Нужно программно решить этот вопрос. Вручную большой пласт работы.
...
Рейтинг: 0 / 0
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39524112
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr66Много баз в разных папках уже создано с русскими названиями.
То есть они как-то работали до сих пор?
...
Рейтинг: 0 / 0
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39524130
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert к FB2.5 где база с русскими буквами - коннектится нормально.

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

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

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

кстати, беру вот InterBase 2017, самую последнюю. В ИБЕ создаю D:/test/Артем.ibs. Создается прекрасно
(кстати, почему это расширение .ibs???).
Коннект проходит норм. Так что причина, видимо, именно в InterClient.
авторТо есть они как-то работали до сих пор?
видимо, раньше на Java ничего не писали.
fraksАлиасы в Interbase есть?
нет. есть рероутинг по портам/инстансам, алиасов в понимании ФБ нет
http://docwiki.embarcadero.com/InterBase/2017/en/Automatic_Rerouting_of_Databases
...
Рейтинг: 0 / 0
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39524853
Dr66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу версии интерклиента:
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
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39524864
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr66как получить короткий путь?
Настроить альясы.
...
Рейтинг: 0 / 0
Ошибка при подключении к БД Interbase через Java (Interclient)
    #39524876
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr66как получить короткий путь?

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

Можно так:

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


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