|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Hommer, зачем 50? Считаем версии 1.0, 1.5, 2.1, 2.5, 3.0, 4.0. Собственно 6 версий. И то не факт что все нужны. По факту остаётся 2.5, 3.0 (4.0 пока только потестить). 2 версии сервера. Всего то ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 21:52 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Симонов Дениспо моему я тебе уже разжевал как из UDR подключаться к другой БД Firebird. Я внимательно читаю и внимательно пишу. Как из сервера 3.0.0 подключиться к database.fdb c ODS 13? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 21:52 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Hommer, как обычно. Ещё раз по TCP подключишься без проблем. Встраивать чужеродные dll в UDR только для взаимодействия с embedded в топку ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 21:55 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Симонов ДенисHommer, зачем 50? Считаем версии 1.0, 1.5, 2.1, 2.5, 3.0, 4.0. Собственно 6 версий. И то не факт что все нужны. По факту остаётся 2.5, 3.0 (4.0 пока только потестить). 2 версии сервера. Всего то А перед подключением к нужной из 50 баз не забыть скопировать udr или udf нужных версий и не забыть подменить конфиги. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 21:58 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Симонов ДенисHommer, как обычно. Ещё раз по TCP подключишься без проблем. Встраивать чужеродные dll в UDR только для взаимодействия с embedded в топку Так с TCP с самого начала никаких проблем и нет. Мы же говорим про то когда нужно без сервера работать. Или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:00 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
HommerА перед подключением к нужной из 50 баз не забыть скопировать udr или udf нужных версий и не забыть подменить конфиги. UDR и UDF могут быть общие: правила для них не менялись. А конфиги-то назачем подменять? Каждый сервер, к счастью, умеет читать свой собственный конфиг. HommerМы же говорим про то когда нужно без сервера работать. Или нет? Это ты говоришь, что тебе приспичило без сервера работать. А остальные просто знают, что это так не работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:05 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
HommerКак из сервера 3.0.0 подключиться к database.fdb c ODS 13? подложить engine13 в plugins, прописать его в строке Providers. Подключаться через уже загруженный троешный fbclient. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:09 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovHommerА перед подключением к нужной из 50 баз не забыть скопировать udr или udf нужных версий и не забыть подменить конфиги. UDR и UDF могут быть общие: правила для них не менялись. А конфиги-то назачем подменять? Каждый сервер, к счастью, умеет читать свой собственный конфиг. Базы из разных проектов и используют свой конфиг. Udf или udr библиотека одна, но разных версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:15 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Hommer, опять фантазии. Ты уже придумал некую UDR с внутренними коннектами к embed для ODS 13 и наткнулся на реальные проблемы, или пока всё теоретизируешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:19 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
dimitrHommerКак из сервера 3.0.0 подключиться к database.fdb c ODS 13? подложить engine13 в plugins, прописать его в строке Providers. Подключаться через уже загруженный троешный fbclient. Это хорошо. А как заиспользовать udr, которые возможно пересекаются по именам с теми что есть в сервере 3.0.0, но разных версий? Как быть с icu? Если база была создана в FB 4, с icu одной версии, а будет использоваться с icu от 3.0.0? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:22 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Симонов ДенисHommer, опять фантазии. Ты уже придумал некую UDR с внутренними коннектами к embed для ODS 13 и наткнулся на реальные проблемы, или пока всё теоретизируешь? Зачем писать что-то подобное, если знаешь что оно не заработает? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:26 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
dimitrHommerКак из сервера 3.0.0 подключиться к database.fdb c ODS 13? подложить engine13 в plugins, прописать его в строке Providers. Подключаться через уже загруженный троешный fbclient. А engine13 в этом случае не могут понадобится какие-то новые entrypoint, отсутствующие в троешном fbclient? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:31 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
HommerНужно избавиться от статической линковки, как и сказал ВладА Баба-Яга M$ - против (выделено мною): DllMain entry pointThe entry-point function should perform only simple initialization or termination tasks. It must not call the LoadLibrary or LoadLibraryEx function (or a function that calls these functions), because this may create dependency loops in the DLL load order. This can result in a DLL being used before the system has executed its initialization code. Similarly, the entry-point function must not call the FreeLibrary function (or a function that calls FreeLibrary) during process termination, because this can result in a DLL being used after the system has executed its termination code. Because Kernel32.dll is guaranteed to be loaded in the process address space when the entry-point function is called, calling functions in Kernel32.dll does not result in the DLL being used before its initialization code has been executed. Therefore, the entry-point function can call functions in Kernel32.dll that do not load other DLLs. For example, DllMain can create synchronization objects such as critical sections and mutexes, and use TLS. Unfortunately, there is not a comprehensive list of safe functions in Kernel32.dll . Calling functions that require DLLs other than Kernel32.dll may result in problems that are difficult to diagnose . For example, calling User, Shell, and COM functions can cause access violation errors, because some functions load other system components. Conversely, calling functions such as these during termination can cause access violation errors because the corresponding component may already have been unloaded or uninitialized. Ну и необходима обоснованная уверенность, что списки зависимых библиотек не поменяются фатальным образом. Или я, опять-таки, не секу фишку и существует возможность делать динамическую загрузку одной dll из другой вне DllMain? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:33 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovHommerМы же говорим про то когда нужно без сервера работать. Или нет? Это ты говоришь, что тебе приспичило без сервера работать. А остальные просто знают, что это так не работает. Мне не приспичило. Просто одно дело - войти в папку проекта пяти или десятилетней давности, запустить exe-шник и всё сразу работает, без сервера. А другое дело - поднять сервер нужной конфигурации на свободном порту, подправить конфиг в программе и только потом запускать. Я embedded использую начиная c yaffil. Все удобства знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:41 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Hommer, ты это, не путай своё приложение написанное 100500 лет назад. И IBExpert. Нужно открыть в IbExpert БД для разработки/внесения изменений, то почему бы и не поставить сервер. Вот у меня прямо сейчас стоят 2.5, 3.0 и 4.0 (а на работе ещё и 1.5 крутится). И меня это ни капли не парит ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 22:46 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
HommerЗачем вам ещё пример? Почему не хватает IBExpert? IBE тут не канает, потому что у него старый FIBplus, то есть, он как эталон примера не подходит. И, как я уже сказал, в IBE лазить по разным embedded одновременно - это изврат. HommerПочему не хватает вот этого: 21391196 + немного фантазии? потому что фантазии эти вымученные. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 23:09 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Basil A. SidorovHommerНужно избавиться от статической линковки, как и сказал ВладА Баба-Яга M$ - против (выделено мною): DllMain entry pointThe entry-point function should perform only simple initialization or termination tasks. It must not call the LoadLibrary or LoadLibraryEx function (or a function that calls these functions), because this may create dependency loops in the DLL load order. This can result in a DLL being used before the system has executed its initialization code. Similarly, the entry-point function must not call the FreeLibrary function (or a function that calls FreeLibrary) during process termination, because this can result in a DLL being used after the system has executed its termination code. Because Kernel32.dll is guaranteed to be loaded in the process address space when the entry-point function is called, calling functions in Kernel32.dll does not result in the DLL being used before its initialization code has been executed. Therefore, the entry-point function can call functions in Kernel32.dll that do not load other DLLs. For example, DllMain can create synchronization objects such as critical sections and mutexes, and use TLS. Unfortunately, there is not a comprehensive list of safe functions in Kernel32.dll . Calling functions that require DLLs other than Kernel32.dll may result in problems that are difficult to diagnose . For example, calling User, Shell, and COM functions can cause access violation errors, because some functions load other system components. Conversely, calling functions such as these during termination can cause access violation errors because the corresponding component may already have been unloaded or uninitialized. Ну и необходима обоснованная уверенность, что списки зависимых библиотек не поменяются фатальным образом. Или я, опять-таки, не секу фишку и существует возможность делать динамическую загрузку одной dll из другой вне DllMain? Чтобы всё заработало, нужно из fbclient.dll грузить engine12.dll примерно так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9.
Из engine12.dll должна быть экспортирована процедура Init: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9.
И то же самое проделать с другими плагинами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 23:10 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
HommerЧтобы всё заработало, нужно из fbclient.dll грузить engine12.dll примерно так:"Меня опять терзают смутные сомнения", что вы - любитель стоять на голове ... Windows 7 x64, что не суть. Есть "%ProgramFiles%\FB3.0" - каталог сервера версии 3.0.3. Создаю отдельный "%ProgramFiles%\FBClient". Копирую из "серверного" каталога в "клиентский": Код: plaintext 1. 2. 3. 4. 5.
Перехожу в "серверный" каталог, запускаю "firebird -a". Делаю "сменить пользователя" и под этим другим пользователем (без прав администратора) запускаю: Код: plaintext
Следовательно, для работы клиента никаких engineXX.dll - не требуется. Кто, кому и, главное, на каком основании должен что-то грузить? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2018, 23:50 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, у меня чуть не так: - все ФБ и ИБ на D:\ в корне. D:\Firebird15, D:\Firebird30, D:\IB2017 и так далее. Иногда приходится запускать gbak или другую команду НЕ от работающей версии, а писать в командной строке C:\Program files\Firebird25\bin\... я долбанусь. Имена папок все короткие (для ИБ даже не InterBase..., а просто IB...). Можно было бы и Firebird до FB сократить. Что касается минорных билдов, я их по мере возможности сохраняю либо в подпапках Update, либо просто под именем типа fbserver212.exe в одном каталоге Firebird21\bin. - есть cmd, который глушит всех, т.е. вызывает instreg remove ... для всех имеющихся ИБ и ФБ (у меня их штук 20), потому что ИБ без instreg не работает, ну и вообще на всякий случай - когда мне надо, в окне cmd захожу в конкретную папку ФБ или ИБ, запускаю fbserver -a, firebird -a, ibserver -a, и так далее. Исключительно в режиме приложения. Сервисом запускается только ИБ 4. - надо запустить сразу два сервера - у второго открываю конфиг, меняю порт, запускаю один с дефолтным, потом второй с умолчательным. Плюсы - запущенный сервак и версию видно в трее. Можно завершить не лазяя в службы. Если сделать совсем зашибись, то можно поналепить одинаковых командных файлов cmd, которые будут запускать конкретную версию. Но мне так делать лениво. Мораль: свое рабочее место надо настраивать. :-) А не тыкать в какие-то левые embedded из IBE. p.s. замечу, что 2 ИБ нельзя запустить одновременно без реального траходрома с инстансами. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 00:45 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
kdvу меня чуть не так:У меня - пример. "Прямщас" мне вообще не нужен FB, но лет восемь назад требовался. Вот тогда я и разобрался с одновременным запуском серверов разных версий, с отдельными (и "усечёнными") клиентами. Сейчас я вижу разницу в некоторых деталях, но, в целом, всё более-менее "по-старому". В частности, не вижу проблем держать одновременно запущенными пару-тройку серверов и ходить к ним "самым свежим клиентом" (без проблем) или "к каждому своим клиентом" (тоже без проблем). "По-моему - так" (ц) Винни-Пух. P.S. Назначили каждому серверу порт, равный 10000 + major*1000 + medium*100 + minor*10 - и дело с концом. Вроде, и для любых разумных задач хватит и думать особо не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 02:17 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
GallemarВнимательный читатель увидит,что я выше по тексту давал картинку из инспектора объектов явно не Делфи и давал ссылку на перепиленый ibx. Для тех кто не работал на Delphi выше седьмого - твоя картинка вообще не информативна. Lazarus я запускал, но не помню там инспектора. Из остальных Delphi выше D7 ставил только Turbo, но и там инспектор не запомнился. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 04:02 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
fraks, ну извини :) У меня как-то прикол был, я на D7 пользуюсь CnPack для подсветки синтаксиса, просил товарища мне помочь с кодом, он по удаленке подцепился и семерку не узнал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 04:05 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
kdv- надо запустить сразу два сервера - у второго открываю конфиг, меняю порт, запускаю один с дефолтным, потом второй с умолчательным. а я на винде уже давно перестал ставить FB инсталлятором и мусорить в реестре. Складываю в одном месте разные версии по разным папкам, рядом кладу батники а-ля <сервер FB> -a -p xxxx и правлю конфиги. Когда надо что-то проверить, запускаю. Никто ни с кем не конфликтует. Жаль, что на линуксе такой номер не прокатывает. зы. Глянул я на название треда - ничего общего с обсуждаемыми вопросами. Потом опять будем думать, что кто-то что-то умное сказал, но в пятнице ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 09:12 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
ДокЖаль, что на линуксе такой номер не прокатывает.Там, наверное, какой-нибудь префикс можно указать в процессе "растаривания"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 09:29 |
|
FireBird embedded, совместный доступ к файлу базы
|
|||
---|---|---|---|
#18+
Basil A. SidorovДокЖаль, что на линуксе такой номер не прокатывает.Там, наверное, какой-нибудь префикс можно указать в процессе "растаривания"? нет, там софт по привычке всегда лезет (а большинство инсталляторов туда сует файло) в папку /usr/*.* и /etc/*.* :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 11:02 |
|
|
start [/forum/topic.php?fid=40&msg=39641098&tid=1561112]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 302ms |
total: | 457ms |
0 / 0 |