Начало » Использование СУБД » Firebird, HQbird, InterBase » FB 4 Сервисы и кириллица (Внезапно! Странное поведение сервисов и баз, расположенных в папках содержащих кириллицу.)
FB 4 Сервисы и кириллица [сообщение #2389] |
Fri, 26 May 2023 12:18 |
protector
Сообщений: 4 Зарегистрирован: May 2023
|
Junior Member |
|
|
Решил я тут воспользоваться новомодным OO Api и получить с его помощью статистику базы данных.
Не буду приводить весь код но во общем делаю так:
Подключаемся к сервисам.
spb1:= Futl.getXpbBuilder(Fstatus, IXpbBuilder.SPB_ATTACH, nil, 0);
spb1.insertString(Fstatus, isc_spb_user_name,PAnsiChar(AUserName));
spb1.insertString(Fstatus, isc_spb_password, PAnsiChar(APassword));
Fsvc := Fprov.attachServiceManager(Fstatus,
'service_mgr',
spb1.getBufferLength(Fstatus),
spb1.getBuffer(Fstatus));
Запускаем сервис.
spb2:= Futl.getXpbBuilder(FStatus, IXpbBuilder.SPB_START, nil, 0);
spb2.insertTag(FStatus,isc_action_svc_db_stats);
spb2.insertInt(FStatus, isc_spb_options, isc_spb_sts_hdr_pages);
spb2.insertString(FStatus, isc_spb_dbname, PAnsiChar('C:\Temp\База тут\DB.FDB'));
Fsvc.start(Fstatus,spb2.getBufferLength(Fstatus), spb2.getBuffer(Fstatus));
И вот тут засада. Как видите путь к базе содержит кириллицу. В итоге получаю ошибку:
Can't open database file C:\TEMP\База тст\DB.FDB
Странно. Ну давайте тогда попробуем другой сервис, вдруг сработает. Ну, скажем свип.
spb2:= Futl.getXpbBuilder(FStatus, IXpbBuilder.SPB_START, nil, 0);
spb2.insertTag(FStatus,isc_action_svc_repair);
spb2.insertInt(FStatus, isc_spb_options, isc_spb_rpr_sweep_db);
spb2.insertString(FStatus, isc_spb_dbname, PAnsiChar('C:\Temp\База тут\DB.FDB'));
Fsvc.start(Fstatus,spb2.getBufferLength(Fstatus), spb2.getBuffer(Fstatus));
И всё работает без ошибок! Ладно, а теперь давайте сделаем так. При подключении укажем тэг.
spb1.insertTag(Fstatus,isc_spb_utf8_filename);
Тогда в первом примере ошибки нет. Зато теперь есть во втором, со свипом!
Invalid connection string
-Cannot transliterate character between character sets
И вот вопрос: что за фигня? Почему такое разное поведение сервисов?
И да, чтобы всё работало во втором случае нужно выполнить преобразование строки в UTF8.
Но так ведь явно не должно быть. Бегло погуглив никакого объяснения этому не нашел, может плохо искал, не знаю.
Осторожно предположу, что это, таки, баг.
|
|
|
|
Re: FB 4 Сервисы и кириллица [сообщение #2392 является ответом на сообщение #2390] |
Fri, 26 May 2023 14:47 |
SD
Сообщений: 411 Зарегистрирован: August 2022
|
Senior Member |
|
|
/me приходит, осматривается и удаляется. Остальное порезано самоцензурой.
PS: В этой части леса столько багов, что на них нужно не ружжо, а пулемёт. И патроны. Бесконечные патроны.
[Обновления: Fri, 26 May 2023 15:01] Известить модератора
|
|
|
|
Переход к форуму:
Текущее время: Thu Nov 21 16:30:47 GMT+3 2024
Общее время, затраченное на создание страницы: 0.00640 секунд
|