|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Скоро kdv статью напишет. А пока не написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:01 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Начиная с версии 2.5, FB может обеспечить совместный доступ к одному файлу БД из разных процессов. Для работы с файлом базы по «embedded» протоколу, клиентское приложение в строке коннекта должно указать лишь путь к файлу базы. Правильно: D:\MyFiles\MyBase.fdb Не стоит указывать сетевой путь (даже Localhost или 127.0.0.1). Неправильно: Localhost:D:\MyFiles\MyBase.fdb Если вы укажите в строке коннекта сетевой путь, то FireBird embedded превратится в обыкновенную клиентскую библиотеку, обеспечивающую доступ к удаленному не-ebmbedded серверу FireBird. Правда, удобно? :) При «embedded» коннекте не требуется указывать логин или пароль . Однако №1: некоторые клиентские утилиты и библиотеки могут требовать их наличия – в этом случае нужно указывать «хоть что-то». Однако №2: SQL привилегии (права на объекты, «гранты») продолжают действовать. Таким образом, при «embedded» логине пользователь должен соответствовать выданным правам. (при коннекте с username=SYSDBA, таким образом, получим доступ ко всем объектам). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:03 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
FB 2.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:03 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
FB 2.5, набор необходимых файлов : Найти (здесь: http://www.firebirdsql.org/en/firebird-2-5/ ) и скачать последнюю версию архива с Firebird embedded, например: https://github.com/FirebirdSQL/firebird/releases/download/R2_5_8/Firebird-2.5.8.27089-0_Win32_embed.zip Распаковываем прямо в папку с клиентским приложением. Или в любое другое место – в этом случае клиентское приложение должно как-то получить доступ к этой папке (Можно «глобально» модифицировать системную переменную PATH. Или приложение может сделать это «локально», только для данного процесса, с помощью API – функции SetEnviromentVariable) Если нет возможности указывать клиентскую библиотеку явно (при работе с ibx, например), следует переименовать файл fbembed.dll в fbclient.dll или в gds32.dll (в соответствии с требованиями клиентского приложения). Всё. Нет, не все. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:05 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Перед завершением приложения, использующего FireBird embedded, следует вызвать функцию fb_shutdown() . Подробности: https://firebirdsql.org/file/documentation/release_notes/html/en/2_5/rnfb25-apiods-api.html Вот так функция fb_shutdown() выглядит с точки зрания сишников: Код: plaintext 1.
Вот так – с точки зрения дельфистов: Код: pascal 1.
Эта функция живет в клиентской библиотеке (fbembed.dll). Приложение пред завершением должно загрузить эту библиотеку, запросить адрес функции fb_shutdown() и вызвать ее, с параметрами (0, 1). Потом выгрузить библиотеку. Еще не все. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:07 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Еще не все. Пред вызовом функции fb_shutdown() следует сохранить управляющее состояние FPU, а затем – восстановить его. Обычно клиентские библиотеки делают это самостоятельно, но в данном случае придется делать все руками. Примерный код (Delphi): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Замечание . fb_shutdown() следует вызывать лишь после того, как был выполнен минимум один коннект к базе или к сервису (даже если всего лишь версию клиента запросите). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:09 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Для FB 2.5 - всё? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 01:10 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
КотовасияНачиная с версии 2.5, FB может обеспечить совместный доступ к одному файлу БД из разных процессов . Для работы с файлом базы по «embedded» протоколу , клиентское приложение в строке коннекта должно указать лишь путь к файлу базы. Сам то понял что сказал? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 03:45 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
КотовасияЭта функция живет в клиентской библиотеке (fbembed.dll). Приложение пред завершением должно загрузить эту библиотеку , запросить адрес функции fb_shutdown() и вызвать ее, с параметрами (0, 1). Потом выгрузить библиотеку. Еще не все. Это как? А в процессе работы библиотека не загружается? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 04:05 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
КотовасияЕсли нет возможности указывать клиентскую библиотеку явно ( при работе с ibx, например ) Юзайте правильный ibx. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 04:27 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
КотовасияЕсли нет возможности указывать клиентскую библиотеку явно (при работе с ibx, например), следует переименовать файл fbembed.dll в fbclient.dll или в gds32.dll (в соответствии с требованиями клиентского приложения). Всё. Не всё. Сам пробовал так делать? Даже fbclient не рекомендуют так создавать, есть утилита instclient для этого . Попытался gds32.dll из fbembed.dll (Delphi 7/ IBX 7.08), не смог подключится, получаю ошибку unavailable database . Детально не разбирался откуда она. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 05:18 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
GallemarЮзайте правильный ibx. Не нужен, имхо, FAQ про "правильный". Нужен про такой как у всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 08:21 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Vlad FGallemarЮзайте правильный ibx. Не нужен, имхо, FAQ про "правильный". Нужен про такой как у всех. Про такой как все я писал выше. Не завелся. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:01 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
У кого есть Delphi XE и выше? Там ibx разрешает выбрать клиентскую библиотеку или просто выбор firebird/interbase? У меня только Starter :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:10 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
GallemarПопытался gds32.dll из fbembed.dll (Delphi 7/ IBX 7.08), не смог подключится, получаю ошибку unavailable database . Детально не разбирался откуда она. Если не переименовывать а скопировать то все будет хорошо (ну по крайней мере у меня работает) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:22 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
m7mЕсли не переименовывать а скопировать то все будет хорошо (ну по крайней мере у меня работает) куда и что ты копировал? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:23 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Gallemarm7mЕсли не переименовывать а скопировать то все будет хорошо (ну по крайней мере у меня работает) куда и что ты копировал? fbembed.dll в gds32.dll ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:25 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
m7mfbembed.dll в gds32.dll Это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:27 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Gallemarm7mfbembed.dll в gds32.dll Это как? Издеваешься :) это copy, а не rename ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:33 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
m7mGallemarпропущено... Это как? Издеваешься :) Да нужен ты мне :) m7mэто copy, а не rename А в чем разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:34 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
КотовасияПри «embedded» коннекте не требуется указывать логин или пароль . Однако №1: добавь сюда, что в FB 2.1.x и 2.5.x без loopback можно сделать несколько(много) embedded-коннектов к одной и той же базе ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:36 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Док, Эд, думаешь надо? По моему надо просить kdv закончить черновик и выложить статью. Автор топика пишет что попало, начал за здравие, кончил за упокой. Вообще уже больше интересен emb в трешке и его отличия от 2.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:41 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
m7mGallemarпропущено... Это как? Издеваешься :) это copy, а не rename Получилось :) Теперь работает ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:51 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Gallemarm7mэто copy, а не rename А в чем разница? Подозреваю в том, что рядом остаётся fbembed.dll, к которой она потом сама обращается. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:57 |
|
|
start [/forum/topic.php?fid=40&msg=39639708&tid=1561112]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
127ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 237ms |
0 / 0 |