Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];

Вниз

использование 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.064 c
2-1153984203
Crazy monkey
2006-07-27 11:10
2006.08.13
Вопрос по Access


2-1153663394
Bambucha
2006-07-23 18:03
2006.08.13
Shell Extensions


6-1143447618
Некто_Аполло
2006-03-27 12:20
2006.08.13
Дозвон без соединения


2-1153401611
Константин_
2006-07-20 17:20
2006.08.13
Ошибка No current record при попытке редактирования данных


2-1153915713
WhiteCat
2006-07-26 16:08
2006.08.13
Не вносить запись в таблицу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский