Текущий архив: 2006.08.13;
Скачать: CL | DM;
Вниз
использование dll в приложениях с компонентами IBX Найти похожие ветки
← →
zorik © (2006-06-06 10:15) [0]Я уже неоднократно задавал этот вопрос, но так и не получил утвердительного ответа. Планируется написание большого проэкта с кучей разнообразных расчетов, импортов-экспортов и т.д. Имеет смысл распихать функции по групах по отдельных библиотеках. Допустим на главном модуле есть компонент TIBDatabase и TIBQuery. В каждой dll-ке должна быть компонент TIBQuery, который был бы detail для TIBQuery главного модуля. В книжке, правда для BDE, видел пример, где в dll передается handle database.
Подкиньте ссылки не эту тему. Не о dll в целом. а именно примеры работы с базами данных в dll
← →
DrPass © (2006-06-06 10:57) [1]Хочешь толковый совет? Не делай так. Граблей с утечками памяти, кривой обработкой событий и т.д. ты просто не разгребешь. Компоненты IBX без костылей не предназначены для такой работы... хотя если тебе слишком хочется, то передавать нужно не хендл, а указатель на саму IBDatabase. И, конечно, не забывать про sharemem. Но если твое приложение хоть чуть-чуть сложнее, чем "выбрать/вставить/удалить", то лучше с этим не связываться
← →
zorik © (2006-06-06 11:17) [2]А как тогда поступать? Как люди поступают? Около 100 таблиц в БД, каждый день нужно что-то подправлять, изменять. Графики, расчеты и т.д. Начал проэктировать новую базу взамен старой. Хочется и приложение нормальное написать. Лепить все в одну exe-шку, пусть даже с очень грамотно раскидаными функциями по модулях, и использованием репозитория для типичных форм справочников, хотя и хорошее, но не очень эфективное решение.
А то что козни есть знаю. Пробывал.Ошибки IBUpdate не обрабатываються. Системное сообщение выдается.
Подскажите, кто делал большие проэкты как поступить!
← →
ANB © (2006-06-06 15:23) [3]
> zorik © (06.06.06 11:17) [2]
Имхо - я как раз люблю большие экзешники.
Но если очень надо, то :
1. Создавать не DLL, а пакеты
2. Приложение компилять с использованием рантаймовых пакетов (и тащить всю эту кучу bpl на каждого клиента).
3. При вызове функции пакета передавать ей адрес тех объектов приложения, с которыми она должна работать. Т.е. IBDataBase как минимум.
← →
Alex_A_V (2006-06-06 19:24) [4]А зачем так вообще делать? Разве не проще скопировать один большой экзешник, чем много маленьких дллек, да еще надо отслеживать где какие заменил, с одним файлом это легче делать. С отчетами например понятно зачем в отдельный файл выносить, можно их поправить не меняя собственно программу. А если поправил что-то в длл, то какая разница маленкую длл заменить или большой ехе? Да и то большой-то понятие относительное.
← →
zorik © (2006-06-07 09:49) [5]Ну что ж, спасибо. А то думал, что настоящий ламер. Надо просто аккуратно все писать и коментировать. Просто панический страх перед "большими" проектами. :-)
> С отчетами например понятно зачем в отдельный файл выносить,
> можно их поправить не меняя собственно программу.
А насчет отчетов, я так и не понял как их вынести в отдельный файл. Не использую никаких компонентов для отчетов. Все перекидываю в ексель. Наверное имелись ввиду всякого рода "репорты".
← →
mr.il © (2006-06-07 10:48) [6]
> А насчет отчетов, я так и не понял как их вынести в отдельный
> файл.
Ну можно их вообще в эксэле делать, с подключением к базе прямо из него.
← →
ANB © (2006-06-07 11:36) [7]
> Ну можно их вообще в эксэле делать, с подключением к базе
> прямо из него.
Можно, но и вариант автора тоже неплох, т.к. не требует таскания с программой навороченных шаблонов экселя.
Страницы: 1 вся ветка
Текущий архив: 2006.08.13;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.036 c