IBExpert под Linux и вопрос совместимости gds32

Совместимость InterBase, Firebird, Yaffil между собой и по версиям

Модераторы: kdv, Alexey Kovyazin

Ответить
Andy117
Сообщения: 9
Зарегистрирован: 28 май 2006, 12:25

IBExpert под Linux и вопрос совместимости gds32

Сообщение Andy117 » 28 май 2006, 13:09

Дома и на работе Linux. Все хорошо, но под него нет такой замечательной проги, как IBExpert. Запускаю под VMWare, но держать Варю и запускать ее из-за пары прог не хочется. Решил заточить под wine.
После серий экспериментов эксперт стал запускаться, но с базой не конектится :x . Заходим в меню "Диагностика соединений". Ping идет, соединение с портом 3050 и gds идет. А вот при подсоединении к базе - ступор. Даже ни одного пакета на порт 3050 не отправляется.
Стал расследовать это дело. Оказалось - проблема в advapi32. Не все его функции реализованы в wine, а настоящий advapi32 подсунуть нельзя (в других местах вылетает). Подсунул эксперту embedded - работает. Причем шустро. Фетч в полмиллиона записей раз в 5 быстрее. Но embedded мало, нужно и к серверам соединяться.
Мельком взглянул на код. Так вроде обращение к advapi только в 2 местах. Решил поискать более ранние версии. До этого пробовал gds'ы от FB 1.5, 2 и IB 6.5.
Вопрос - до какой версии можно "опуститься" при поиске? На серверах FB1.5 и 2 (для тестов), диалект 3 почти везде.

P.S. Можно было попробовать "выкусить" оращения к advapi из исходников FB. Но нет полноценной винды и Developer studio. Да и смотреть придется код внимательнее. Неизвестно ведь к чему это приведет.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 29 май 2006, 09:19

А почему бы не попробовать заставить работать Эксперта с нативным линуксовым fbclient-ом? Насколько я помню, wine такое позволяет.
Edit: хотя... у них же договоренности по вызовам разные...

Andy117
Сообщения: 9
Зарегистрирован: 28 май 2006, 12:25

Сообщение Andy117 » 29 май 2006, 12:38

Dimitry Sibiryakov писал(а):А почему бы не попробовать заставить работать Эксперта с нативным линуксовым fbclient-ом? Насколько я помню, wine такое позволяет.
ИМХО не совсем. Часть виндовых библиотек действительно "ненастоящие", а вайновские. Но для виндовых программ подсовывается заглушка, представляющая собой настоящую (по формату) виндовую DLL. А вот обращения к ней перехватываются и направляются в специально заточенные под это линуксовые (ELF) библиотеки wine.

eugeney
Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Сообщение eugeney » 30 май 2006, 11:20

Andy117 писал(а):
Dimitry Sibiryakov писал(а):А почему бы не попробовать заставить работать Эксперта с нативным линуксовым fbclient-ом? Насколько я помню, wine такое позволяет.
ИМХО не совсем.
Правильно, позволяет он все делать. Нужно маны читать, WINE когда линкует DLL смотрит что это за файл ELF иди MZ, после этого линкует по своим правилам и нормально линкует.
Делаеш симфолическую ссылку gds32.dll на fbclient.so и все работает. Я так запускал IBAdmin 3 версии. Для IBExpert там другая проблема была что он не мог отобразить свое дерево у IBExpert там хирая компонента используется.

Посмотри в сторону SQuirreL SQL Client, он позволяет многие вещи делать. Хотя не такой удобный как IBExpert.

Andy117
Сообщения: 9
Зарегистрирован: 28 май 2006, 12:25

Сообщение Andy117 » 30 май 2006, 12:55

eugeney писал(а):Правильно, позволяет он все делать. Нужно маны читать, WINE когда линкует DLL смотрит что это за файл ELF иди MZ, после этого линкует по своим правилам и нормально линкует.
Да, ты прав. Позволяет.
eugeney писал(а):Делаеш симфолическую ссылку gds32.dll на fbclient.so и все работает. Я так запускал IBAdmin 3 версии.
Может так в ранней версии wine можно было? Там поддерживались 4 типа DLL - native, buildin, elfdll и so. А сейчас только native, buildin. И теперь, вроде как, нужно иметь .spec файл с описаниями экпортируемых функций, делать врапер... И т.д. и т.п.
Скачал я для начала исходники последнего (0.9.14) вайна. Скомпилил его. Соединения нет, но уже не входит в ступор, а ругается. Это уже хорошо. Короче, не буду описывать все свои мытарства, но я его победил!. Работает.
eugeney писал(а): Для IBExpert там другая проблемма была что он не мог отобразить свое дерево у IBExpert там хирая компонента используется.
Все отлично отображается. Нужно только dcom98 установить и для экперта указать, что ole библиотеки будут native

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 09 дек 2006, 11:26

Andy117 писал(а):Короче, не буду описывать все свои мытарства, но я его победил!. Работает.

Все отлично отображается. Нужно только dcom98 установить и для экперта указать, что ole библиотеки будут native
а можно поподробнее с этого момента ? у меня эксперт под wine матюкается просто жутко :(

Ответить