Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.061 c
2-1153809928
oleggar
2006-07-25 10:45
2006.08.13
уничтожить процесс


1-1151609039
NewCheloveck555
2006-06-29 23:23
2006.08.13
Проблема нахождения элемента через FindWindowEx


15-1153130774
QuickFinder
2006-07-17 14:06
2006.08.13
Слово о МЯСЕ


8-1139987525
Fly
2006-02-15 10:12
2006.08.13
Как Сохранить в PNG


2-1153734562
Илья С.
2006-07-24 13:49
2006.08.13
Чтение из файла картинок