Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
ВнизDLL и текущий Database Найти похожие ветки
← →
mike-d (2002-10-12 12:40) [0]Подскажите, если в курсе, следующую проблем.
Задача:
Стандартная прога с БД (предоставление услуг населению), работает на 4 предприятиях. Почти у каждого из них (предприятий) свои требования к вводу платежей за какие-то услуги: одним надо чохом за все, другим раздельно по каждому виду услуги, третьим еще по ходу что-то рассчитывать - короче разница ощутимая. Делать универсальный диалог с массой настроек - не есть гуд. Решено вроде сделать вызов DLL с диалогом под конкретный релиз - кажется симпатично...
Проблема:
Нужно пристегнуть элементы DB этого DLL к Database из этой проги, шта бы и изменения отражались в проге тут же...
Если есть возможность, то примерчиком, плиз! Может у кого другие соображения на реализацию ввода - с удовольствием выслушаю (прочитаю, стал быть).
← →
sniknik (2002-10-12 14:58) [1]универсальный диалог с массой настроек - более приемлемое решение. (по моему)
почему.
первое каждая dll с компонентами db потянет килобайт на 400-500 минимум.
второе в каждой реализации в конце концов потребуется вносить изменения, требования у заказчиков меняются ой как часто. :-(( и придется тянуть несколько програм вместо одной.
третье писать придется гораздо больше, вместо одного грамотной выборки целая dll.
DBISAM это тип СУБД?(странная какаято) если она работает с наборами данных возвращай из dll набор который присваивай компоненту в программе, как делает ADOCommand.Execute например, если возвращаемый рекордсет присвоить ADODataSet.RecordSet то связанный грид тут же отразит данные. Не пойдет?
← →
mike-d (2002-10-12 19:18) [2]to shiknik
DBISAM - это движок БД аналогичный BDE, но пристегивается к EXE файлу (300К кажется) и не требует дополнительно установленных библиотек (в отличие от BDE, ADO, далее по списку...). Быстродействие то же, где-то чуть быстрее, где-то медленнее, не суть. Не рушит первичные индексы в отличие от BDE, корректна при сбоях, ну и далее информация на www.elevatesoft.com
Теперь по теме:
- размер dll роли не играет;
- изменения в реализации придется вносить в dll конкретного заказчика, а не наворачивать дополнительные настройки в универсальный диалог ввода;
- программа остается все-таки одна, а вызов нужной dll делается в настройке.
DBISAM фукциональный аналог BDE. Как сделать чтоб DBEdit"ы из DLL оповещали TTable вызывающей проги о изменениях?
← →
sniknik (2002-10-12 22:25) [3]получается форму будеш в dll-и делать. дополнительно еще хх килобайт на каждую, но если неважно...
Если подчиненная форма в Dll будет сделана от родительского окна то она будет аналогична том что обьявлены в программе. (во всяком случае не вижу различий). А между формами пожалуй все делали ссылки.
т е вся проблема сводится к созданию формы
TFormDll:= TForm.Create(self) (значение self из программы передать)
и присвоению
DBEdit1.DataSource := DataSource1;
а то что один компонент обьявлен в dll другой в программе нет.
это конечно теоретически, практически такими извращениями не занимался. можно попробовать, только конкретно где какой компонент тебе нужен? и поменьше для примера.
← →
dim- (2002-10-12 23:09) [4]А в чем проблемма? Если в dll будет форма для ввода данных в БД то после ее вызова делается рефрешь таблицы и данные обновляются. Если все равно на размер dll то в него можно можно поместить Ttable(Tqwery) и при открытии передовать путь к БД и номер текущей записи если ее надо редактировать или -1 если запись новая.
← →
sniknik (2002-10-13 01:16) [5]да уж действительно проблемы нет. зря только время потерял. все замечательно передается по DataSource1 см. меня же (12.10.02 22:25).
← →
mike-d (2002-10-13 09:45) [6]It"s, OK!
Всем спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c