Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизПример работы с базой (хочу идеальный код) Найти похожие ветки
← →
Dust © (2006-06-03 13:41) [0]Имеет ли смысл всю работу с базой переносить в дата-модуль?
стоит ли описывать класс типа TMyDatabase, и тд и тп...?
← →
DSKalugin © (2006-06-03 15:26) [1]1-да, это логичней, чем размазывать его по всем модулям. Под кнопками и другими элементами управления должны быть только процедуры управления ходом выполнения программы и вызовы готовых процедур обращения к БД, опи санных в датамодуле.
2-он уже описан в компонентах прямого доступа IBObjects, FibPlus, IBX, dbExpress. Так что достаточно воспользоваться готовым, например
MyDatabase: TpFIBDatabase;
← →
atruhin © (2006-06-03 16:26) [2]
> 1-да, это логичней, чем размазывать его по всем модулям.
Известный вариант, но есть недостатки, в достаточно большом проекте этот модуль может получится огромных размеров, плюс все модули должны иметь на него ссылки, затрудняется работа в комманде.
Есть другой вариант, главное окно предоставляет интерфейс через который можно получить коннект к БД, транзакциям и т.д., а также управляет созданием закрытием окон. Например по имени класса окна:
FormClass := GetClass(ClassName);
if Assigned(FormClass) then begin
WinClass := TfrmAbstractChild(FormClass.NewInstance);
(WinClass as ICreateObject).Init(ObjID, self ....);
WinClass.Create(self);
Окно получает ссылку на документ, с которым должно работать и ссылку на интерфейс. Вся работа с БД НЕОБХОДИМАЯ ЭТОМУ ОКНУ осуществляется в нем. В целом окно ни чего не знает о других окнах, включая главное, а оно не знает о дочерних. В таком варианте отдельные окна могут разрабатывать разные люди, также очень легко олаживать модифицировать т.к. мы имеем небольшие абсолютно независимые модули.
← →
Курдль © (2006-06-05 11:44) [3]
> хочу идеальный код
Идеальный - не получится. Если хотите оптимальный - надо много читать.
Рекомендую почитать про GRASP и GoF. (Ларман, Гамма и т.п.) Как раз там объясняют, как правильно "делить" программы на модули.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c