задолбала меня эта мешанина, хочу обсудить, прежде чем писать петиции трекеру.
Факт: на текущий момент имя fbclient.dll 32бит и 64бит идентично. И определить битность мы можем только специальными тулзами, которые сходу еще и просто так не найдешь.
Последствия: Если установлен 64битный сервер, то 32битные приложения, понятно, не работают с этой либой. И надо где-то искать 32битный fbclient.dll. Впрочем, наоборот (32бит сервер и 64бит приложения) та же проблема.
У InterBase с этим все куда проще. У них и так 32битная либа была gds32.dll, а при выпуске 64бит редакции ее обозвали ibclient64.dll.
Предлагаю, хотя бы как минимальную задачу - поставляемый в дистре (и zip) fbclient.dll там же в дистре копировать в fbclient64.dll и fbclient32.dll соответственно, чтобы оно прямо там же в bin и лежало (не в момент установки, а заранее).
Тут возникает вопрос. Надо-ли, чтобы 32битный инсталлятор ставил опционально 64битного клиента, и наоборот? Если да, то куда его ставить - в отдельную папку?
Эту фигню надо было решать еще давно. Хотя бы обозвать fbclient64.dll. А сейчас, например, odbc-драйвер точно так же может "запутаться" с битностью dll. И проблема в том, что сообщение об ошибке, как и везде - "не могу загрузить fbclient.dll". Почему? А не могу, и все.
p.s. я еще одну запредельную шизню приведу: в 64битном ФБ есть instclient.exe, как и в 32битном. Так вот, он работает точно так же, как и 32битный. Т.е. при instclient i g превращает fbclient.dll (64битный) в ... gds32.dll ! Которая на самом деле 64битная! Ужос. Либо instclient из 64битного дистра надо убирать вообще, либо отрубать ему опцию "i g" для 64битного варианта.
Факт: на текущий момент имя fbclient.dll 32бит и 64бит идентично. И определить битность мы можем только специальными тулзами, которые сходу еще и просто так не найдешь.
Последствия: Если установлен 64битный сервер, то 32битные приложения, понятно, не работают с этой либой. И надо где-то искать 32битный fbclient.dll. Впрочем, наоборот (32бит сервер и 64бит приложения) та же проблема.
У InterBase с этим все куда проще. У них и так 32битная либа была gds32.dll, а при выпуске 64бит редакции ее обозвали ibclient64.dll.
Предлагаю, хотя бы как минимальную задачу - поставляемый в дистре (и zip) fbclient.dll там же в дистре копировать в fbclient64.dll и fbclient32.dll соответственно, чтобы оно прямо там же в bin и лежало (не в момент установки, а заранее).
Тут возникает вопрос. Надо-ли, чтобы 32битный инсталлятор ставил опционально 64битного клиента, и наоборот? Если да, то куда его ставить - в отдельную папку?
Эту фигню надо было решать еще давно. Хотя бы обозвать fbclient64.dll. А сейчас, например, odbc-драйвер точно так же может "запутаться" с битностью dll. И проблема в том, что сообщение об ошибке, как и везде - "не могу загрузить fbclient.dll". Почему? А не могу, и все.
p.s. я еще одну запредельную шизню приведу: в 64битном ФБ есть instclient.exe, как и в 32битном. Так вот, он работает точно так же, как и 32битный. Т.е. при instclient i g превращает fbclient.dll (64битный) в ... gds32.dll ! Которая на самом деле 64битная! Ужос. Либо instclient из 64битного дистра надо убирать вообще, либо отрубать ему опцию "i g" для 64битного варианта.