powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird embedded, совместный доступ к файлу базы
25 сообщений из 310, страница 3 из 13
FireBird embedded, совместный доступ к файлу базы
    #39640215
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemarУ кого есть Delphi XE и выше? Там ibx разрешает выбрать клиентскую библиотеку или просто выбор firebird/interbase?
Кстати есть ещё клон IBX2 для Firebird выпускается под Lazarus https://www.mwasoftware.co.uk
Он кстати довольно далеко ушёл от оригинала.
Ничего подобного. Не далее, как пару дней назад бодался с ним, пытаясь убедить, что тру IBX компоненты должны иметь возможность выбора клиентской библы в виде public property. Он упёрся, пытаясь мне доказать, что загрузку клиента должна делать ОСь из переменной FBLIB.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640224
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докзагрузку клиента должна делать ОСь из переменной FBLIB.
это какой-то позор.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640229
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

Пилится то пилится, но в XE5 мне для этого пришлось вторгаться в штуки три разных юнита и (чтобы по уму) дописать как бы не несколько страниц повергающего самого в изумление кода. Мы же, на сколько понимаю, говорим об исчерпывающих рецептах не снобам, а неофитам.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640233
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvЛюбезный,

http://docwiki.embarcadero.com/Libraries/Tokyo/en/IBX.IBDatabase.TIBDatabase_Properties

нет там такого. В Лазарусе - что угодно, там ИБХ допиленный.
Внимательный читатель увидит,что я выше по тексту давал картинку из инспектора объектов явно не Делфи и давал ссылку на перепиленый ibx. Насколько помню ты как то сам рассказывал как допилил выбор клиента, если не найдет gds32,то возьмет fbclient.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640235
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

почитал аргументацию, какие-то зёрна там есть, но в целом - отказать.
По его мнению - КТО должен устанавливать имя либы в переменной FBLIB? Неужели само приложение? :-) А если оно с флэшки запускается, то кто - юзер перед его запуском?
Ну указал юзер там полный путь к либе в дизайн-тайме. Значит сам виноват.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640236
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокОн упёрся, пытаясь мне доказать, что загрузку клиента должна делать ОСь из переменной FBLIB.

Точнее его поделие грузит библиотеку оттуда. Ну... это ещё не худшее, что может случиться.

Помнится, когда Firebird 1.5 была ещё в проекте, её разработчики хотели заставить всех
искать клиентскую библиотеку каждого инстанса отдельно, по записям в реестре. К счастью,
они не довели свои планы до конца.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640315
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийВажное отличие 3.0 от 2.5 - тип сервера по-умолчанию. Для 2.5 - Classic, для 3.0 - Super
Из-за этого в 3.0 без изменения этого параметра в firebird.conf нет возможности одновременно подключиться к одной БД.

имхо, вот это надо прибить эпиграфом к статье об embedded :)

kdvПо его мнению - КТО должен устанавливать имя либы в переменной FBLIB?
юзер, вестимо. У меня создалось впечатление, что он пилит компонент на линуксе, а значит ручками задавать всякие параметры (в т.ч. и пути к библиотекам FB) в терминале для него естественно, как дыхание :)

Если обратил внимание, в качестве альтернативы он предлагает жестко задавать в designtime пути к клиенту в OnGetLibraryName, что, по сути, ничем не лучше.

Dimitry SibiryakovТочнее его поделие грузит библиотеку оттуда. Ну... это ещё не худшее, что может случиться.
да уж, яркий тому пример - FlameRobin c его статической линковкой libfbclient.so.2. Поневоле зауважаешь Хвастунова за его удобный IBE :)
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640343
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котовасия...
...и скачать последнюю версию архива с Firebird embedded, например: https://github.com/FirebirdSQL/firebird/releases/download/R2_5_8/Firebird-2.5.8.27089-0_Win32_embed.zip

Распаковываем прямо в папку с клиентским приложением...
Фигню написал. :( Уточнение.
Клиентская библиотека (fbclient.dll/gds32.dll) должна быть доступна клиентскому приложению в соответствии с правилами пути поиска, используемых Windows для обнаружения библиотеки DLL : https://msdn.microsoft.com/ru-ru/library/7d83bc18.aspx
То есть, например, клиентское приложение должно находиться в той же папке, что и клиентская библиотека (fbclient.dll/gds32.dll), или путь должен быть указан "глобально", в переменной окружения PATH. Или "локально" (т.е., только для данного процесса) - с помощью функции API SetEnviromentVariable. И т.д.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640344
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 3.0*.
Многое не так, как в FB 2.5, читаем «иещеболее» внимательно.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640346
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где брать файлы для Firebird embedder 3.0*?

Отдельного пакета для Firebird Embedded больше нет.

Файлы берем вот здесь: https://www.Firebirdsql.org/en/Firebird-3-0/
Ищем “Zip kit for manual/custom install”, например: https://github.com/FirebirdSQL/Firebird/releases/download/R3_0_3/Firebird-3.0.3.32900-0_Win32.zip

Скачиваем, распаковываем в отдельную папку.
Смело удаляем подпапки doc, examples, system32, include, lib, misc, help.
Удаляем все файлы с расширениями «exe» и «bat». Если вы уже знаете, для чего нужны эти «exe» - шники, и они вам действительно нужны - их удалять не следует. Например, оставить gfix, gstat, gbak, isql и nbackup.
Также удаляем fbrmclib.dll, fbtrace.conf, security3.fdb.
В папке plugis удаляем все файлы, кроме файла engine12.dll.

Как было сказано ранее, из-за особенностей клиентского кода (использование старых «дельфийских» компонентов ibx, например), возможно, придется переименовать клиентскую библиотеку: fbclient.dll переименовать в gds32.dll.

Клиентская библиотека (fbclient.dll/gds32.dll) должна быть доступна клиентскому приложению в соответствии с правилами пути поиска, используемых Windows для обнаружения библиотеки DLL: https://msdn.microsoft.com/ru-ru/library/7d83bc18.aspx

То есть, например, клиентское приложение должно находиться в той же папке, что и клиентская библиотека (fbclient.dll/gds32.dll), или путь должен быть указан "глобально", в переменной окружения PATH. Или "локально" (т.е., только для данного процесса) - с помощью функции API SetEnviromentVariable. И т.п.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640348
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настройка режима embedded 1.

Уже можно работать.

Для работы с файлом базы по «embedded» протоколу, клиентское приложение в строке коннекта должно указать лишь путь к файлу базы.
Правильно:
D:\MyFiles\MyBase.fdb
Не стоит указывать сетевой путь (даже Localhost или 127.0.0.1).
Неправильно:
Localhost:D:\MyFiles\MyBase.fdb

Если вы укажите в строке коннекта сетевой путь, то Firebird embedded превратится в обыкновенную клиентскую библиотеку, обеспечивающую доступ к удаленному не-embedded серверу Firebird.

При «embedded» коннекте не требуется логин или пароль . Однако №1: некоторые клиентские утилиты и библиотеки могут требовать их наличия (например, будет появляться окно диалога с требованием указать логин и пароль) – в этом случае нужно указывать «хоть что-то».
Однако №2: SQL привилегии (права на объекты, «гранты») продолжают действовать. Таким образом, при «embedded» логине пользователь должен соответствовать выданным правам. (при коннекте с username=SYSDBA, таким образом, получим доступ ко всем объектам).


Но все это пока не обеспечивает одновременный доступ к файлу базы из разных процессов .
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640352
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настройка режима embedded 2. Обеспечение одновременного доступа к файлу базы из разных процессов.

Открываем в текстовом редакторе файл Firebird.conf, находим строку:
#ServerMode = Super
Редактируем ее, должно получиться:
ServerMode = Classic

Важно 1: Перед завершением приложения, использующего Firebird embedded, следует вызвать функцию fb_shutdown(). 21386074

Важно 2: Пред вызовом функции fb_shutdown() следует сохранить управляющее состояние FPU, а затем – восстановить его. Обычно клиентские библиотеки делают это самостоятельно, но в данном случае придется делать все руками. 21386074

Замечание. fb_shutdown() следует вызывать лишь после того, как был выполнен минимум один коннект к базе или к сервису (даже если всего лишь версию клиента запросите).
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640353
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Для FB 3.0* - всё?
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640362
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияПеред завершением приложения, использующего Firebird embedded, следует вызвать функцию fb_shutdown()Точнее - перед выгрузкой клиентской библиотеки.

КотовасияПред вызовом функции fb_shutdown() следует сохранить управляющее состояние FPU, а затем – восстановить егоОткуда это требование ?

Котовасияfb_shutdown() следует вызывать лишь после того, как был выполнен минимум один коннект к базе или к сервисуА это откуда ?
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640364
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

насчет FPU - это требование дельфистов, использующих extended. Вернее, взвывших покупателей нашего продукта, потерявших точность при вычислениях.

Насчет второго - это исходя из опыта. Когда вызывался fb_shutdown() просто так, без предварительного коннекта - все падало. Может, уже исправили, но я на всякий случай все еще дую на холодную воду.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640368
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котовасиянасчет FPU - это требование дельфистов, использующих extended. Вернее, взвывших покупателей нашего продукта, потерявших точность при вычислениях.Сто лет как все вызовы API сохраняют и восстанавливают маску FPU. fb_shutdown - не исключение

КотовасияНасчет второго - это исходя из опыта. Когда вызывался fb_shutdown() просто так, без предварительного коннекта - все падало.Тоже сто лет назад что-то такое было.

КотовасияМожет, уже исправили, но я на всякий случай все еще дую на холодную воду.Не надо дуть, это может быть вредно
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640373
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

не, конкретно именно с fb_shutdown() несколько раз было "сломали - починили - сломали - починили", я уж лучше подстрахуюсь, чем из отпуска во все лопатки лететь.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640376
Hommer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё: embedded 2.5 и embedded 3 могут быть использованы одновременно. Пример - IB Expert.
Разные embedded 3 вроде как не могут быть использованы одновременно, т.к. dll-ки путаются.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640377
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котовасия Важно 1: Перед завершением приложения, использующего Firebird embedded, следует вызвать функцию fb_shutdown(). 21386074

Уточни без отсылок на вторичную документацию, когда это действительно нужно делать, а когда необязательно. И чем и когда конкретно грозит. Ибо я с IBX различных версий (а сейчас еще дополнительно с FireDAC) никогда сам дополнительно этого не делал и действительно не понимаю в этой связи столь категоричного требования.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640379
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hommer,

сначала объясни на фига из одного приложения несколько embedded разных версий использовать. Вот хоть убей не могу придумать ситуацию когда это необходимо
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640381
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad...Сто лет как все вызовы API сохраняют и восстанавливают маску FPU. fb_shutdown - не исключение
...
Тоже сто лет назад что-то такое было.
...
Посмотрел историю: в начале 2015-го сие было.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640384
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FКотовасия Важно 1: Перед завершением приложения, использующего Firebird embedded, следует вызвать функцию fb_shutdown(). 21386074

Уточни без отсылок на вторичную документацию, когда это действительно нужно делать, а когда необязательно. И чем и когда конкретно грозит. Ибо я с IBX различных версий (а сейчас еще дополнительно с FireDAC) никогда сам дополнительно этого не делал и действительно не понимаю в этой связи столь категоричного требования.
Если все в порядке - не делай. Может, нонешние IBX сами все делают.
А как заметишь, что при завершении приложения какие-то глюки или фризы - попробуй постучать в сей бубен.

Я все время делаю. У меня древние FIB+, разработчики тогда знали про fb_shutdown(). Кстати, хорошая идея, надо бы добавить в код.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640385
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой.
Котовасия...
Я все время делаю. У меня древние FIB+, разработчики тогда НЕ знали про fb_shutdown(). Кстати, хорошая идея, надо бы добавить в код.
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640387
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котовасия,

Ты пытаешься взять на себя ответственность составить общественно полезный FAQ или просто писульку в столь из серии, сделайте так или может быть так, а если этого на самом деле не нужно, то я, типа ни при делах?
...
Рейтинг: 0 / 0
FireBird embedded, совместный доступ к файлу базы
    #39640389
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котовасияhvlad...Сто лет как все вызовы API сохраняют и восстанавливают маску FPU. fb_shutdown - не исключение
...
Тоже сто лет назад что-то такое было.
...
Посмотрел историю: в начале 2015-го сие было.Чью историю ? Свою ? Кого она волнует ? :)
В какой версии клиента это было ? И что именно было ?
...
Рейтинг: 0 / 0
25 сообщений из 310, страница 3 из 13
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird embedded, совместный доступ к файлу базы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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