использование IBX в dll

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Zoreslav
Сообщения: 3
Зарегистрирован: 06 июн 2006, 10:27

использование IBX в dll

Сообщение Zoreslav » 06 июн 2006, 10:49

Подскажите порядок использования компонентов IBX в dll. Подключение создается в основном модуле. Каким образом передавать подключение в dll. В книге где-то видел примеры для BDE, там передавался дескриптор IBDatabase в dll. Подкиньте, пожалуйста, ссылки по теме

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

Сообщение Dimitry Sibiryakov » 06 июн 2006, 10:58

Если хочешь передавать что-то в длл, передавай хэндлы. А лучше всего вообще так не делай.

Zoreslav
Сообщения: 3
Зарегистрирован: 06 июн 2006, 10:27

Сообщение Zoreslav » 06 июн 2006, 11:04

Dimitry Sibiryakov писал(а):Если хочешь передавать что-то в длл, передавай хэндлы. А лучше всего вообще так не делай.
А как? Если у меня будет 20 вариантов импорта-экспорта, куча всяких расчетов, построений графиков и т.д. Лепить все в один ехе-шник? Или переходить на другие компоненты?

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

Сообщение Dimitry Sibiryakov » 06 июн 2006, 11:17

Конечно все в один екзешник. Толще он от этого уже не станет. Всякие отчеты (в зависимости от генератора), картинки и прочую лабуду можно вынести во внешние файлы, а логику лучше не распылять. Соотношение результата к проблемам невыгодное.

Zoreslav
Сообщения: 3
Зарегистрирован: 06 июн 2006, 10:27

Сообщение Zoreslav » 06 июн 2006, 11:37

Dimitry Sibiryakov писал(а):Конечно все в один екзешник. Толще он от этого уже не станет. Всякие отчеты (в зависимости от генератора), картинки и прочую лабуду можно вынести во внешние файлы, а логику лучше не распылять. Соотношение результата к проблемам невыгодное.
Ну что ж, спасибо!

Zhur
Сообщения: 125
Зарегистрирован: 01 мар 2006, 18:17

Сообщение Zhur » 17 июн 2006, 23:16

Zoreslav писал(а): Ну что ж, спасибо!
Могу немного не согласиться. Если проект расчитан на широкое использование, DLL несколько облегчают, например, вопрос сопровождения. Представляю, обнаруживается баг. Что проще? переслать юзерам по электронке одну маленькую DLL-ку или толстый EXE? Думаю, вопроситель должен сам взвесить все за и против, а после выбрать то, что ему более подходит.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 18 июн 2006, 07:19

Zhur писал(а):Что проще? переслать юзерам по электронке одну маленькую DLL-ку или толстый EXE?
Еще один... Товарищи, на дворе 2006 год. Не 1996 год. И даже не 2001. А тут советы по меньшей мере 5-летней давности.
1. Есть архиваторы. У него же екзешник не 50 мегабайт. Упакованный максимум метр будет.
2. Переслать dll и exe - одинаково просто. Что 50 кб, что пять мегабайт - все равно. Потому что скорости позволяют, а трафик достаточно дешев.
3. Без dll код писать будет несравненно проще. Вам не надо будет постоянно переключаться между проектами - основным и как минимум одной dll.
Я уж молчу про DLL-hell :lol: :lol: :lol:.

Zhur
Сообщения: 125
Зарегистрирован: 01 мар 2006, 18:17

Сообщение Zhur » 18 июн 2006, 13:47

CyberMax писал(а):Еще один... Товарищи, на дворе 2006 год. Не 1996 год. И даже не 2001. А тут советы по меньшей мере 5-летней давности.
1. Есть архиваторы. У него же екзешник не 50 мегабайт. Упакованный максимум метр будет.
2. Переслать dll и exe - одинаково просто. Что 50 кб, что пять мегабайт - все равно. Потому что скорости позволяют, а трафик достаточно дешев.
К сожалению, например, мои юзверы, как правило имеют одно подключение через модем на всю организацию. Я говорю про наше отечественное здравоохранение. :cry: Это, конечно, частный случай, но тем не менее!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 июн 2006, 13:54

IBX в DLL насколько я помню, делается только через runtime packages.

Zhur
Сообщения: 125
Зарегистрирован: 01 мар 2006, 18:17

Сообщение Zhur » 18 июн 2006, 15:48

kdv писал(а):IBX в DLL насколько я помню, делается только через runtime packages.
Да... это так.
Кстати, сколько может весить EXE, в котором реализовано все. Я имею в виду и формы, и отчеты, и все остальное. Допустим, пусть для базы в 100 таблиц???

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 июн 2006, 19:33

Допустим, пусть для базы в 100 таблиц???
не надо ему это. у него же импорт сделан. чего вас сразу на глобальные мысли прет?

Zhur
Сообщения: 125
Зарегистрирован: 01 мар 2006, 18:17

Сообщение Zhur » 18 июн 2006, 20:54

kdv писал(а):
Допустим, пусть для базы в 100 таблиц???
не надо ему это. у него же импорт сделан. чего вас сразу на глобальные мысли прет?
Ну... это я уже так... о своем. :roll:

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

Сообщение Dimitry Sibiryakov » 19 июн 2006, 08:13

Zhur писал(а):переслать юзерам по электронке одну маленькую DLL-ку или толстый EXE?
Delphi и "маленькая DLL-ка" как-то плохо совмещаются...

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 19 июн 2006, 11:02

CyberMax, а вы всегда проекты в одиночку пишете?
Замечу, что есть такая штука, как контроль версий. Это когда разные разработчики пишут разные части проекта. С одним екзешником вы ...эээ... устанете сводить исходники для компиляции рабочего варианта проекта.
Или даже вот вам ситуация для "одночеловекописанного" проекта:
Вы очередной раз отправили пользователю exe. И тут пользователь говорит - "а у меня файл-то не качается!". И тут начинается пляска - в какой момент перестал качаться, а какая это была версия, а что ещё в этой версии менялось.... Даже с историей изменений тяжело. Если ведёте.
Добавлю про тестирование. (Вижу улыбку кривую)
После изменений в таком проекте необходимо проводить полное тестирование каждый раз, т.к. менялся весь - неизвестно, в каком месте ошибка возникла и где аукнется.

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

Сообщение Dimitry Sibiryakov » 19 июн 2006, 13:20

Вот как раз разницы между групповой разработкой одного модуля и нескольких практически нет. Да и контроль версий даже при "монопольной" разработке вешь сугубо необходимая.
Что же до полного тестирования... Багу неважно в каком файле сидеть.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 19 июн 2006, 18:09

Это почему же нет разницы? Поковыряли один и тот же исходник, а потом начинают заниматься merge?
Вообще, dll или не dll - сугубо личный вопрос.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 19 июн 2006, 18:15

Zoreslav вроде как один пишет. Если это так, то dll ему не нужны.

P.S. Полностью соглашаюсь с постом Dimitry Sibiryakov.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 июн 2006, 18:26

кстати, есть такая хреновина, как "патчеры". Берешь старую и новую версию, любое число файлов, и генерится патч. Потом применяется у клиента. Только, все что я видел приличное - платное.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 20 июн 2006, 16:33

Полезность патчера сомнительна.
Во-первых, как уже упоминалось выше, сейчас каналы широки и глубоки.
Во-вторых, в этом случае обязательна установка _всех_ версий, без пропусков, иначе не накатится. Если речь идёт о каком-нибудь оффлайновом клиенте у 400-700 удалённых (в том числе друг от друга) пользователей, можно смело хоронить эту хорошую идею.

Ответить