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

Вниз

Вопрос про TDataModule   Найти похожие ветки 

 
eugene32   (2004-09-25 19:08) [0]

Объясните пожалуйста, для чего нужен модуль данных(Data Module) и как им пользоваться. Пытался найти - не нашел.
Какое преимущество от того, что я перемещю все Query и Datasourse"ы программы на отдельный датамодуль?
Заранее благодарен.


 
Sergey_Masloff   (2004-09-25 19:10) [1]

Да особо не для чего. Для удобства. Ну и компонентами с датамодуля обычно пользуется много форм одновременно. А так все равно.


 
eugene32   (2004-09-25 19:21) [2]

Подробнее про удобство можно?


 
eugene32   (2004-09-25 19:23) [3]

Да, и что должно писаться в этом новом юните? Обработка каких событий? Ну не зря же его (Датамодуль) придумали.


 
eugene32   (2004-09-25 19:24) [4]

Можно даже примерчик из программы...


 
Anatoly Podgoretsky ©   (2004-09-25 20:10) [5]

Это особый вид формы, контейнер для невизуальных компонент.


 
eugene32   (2004-09-25 20:18) [6]

Это я усвоил. Как им пользоваться? в чём преимущества?


 
Vlad ©   (2004-09-25 20:47) [7]


> eugene32   (25.09.04 20:18) [6]
> Это я усвоил. Как им пользоваться? в чём преимущества?

Пользоваться так же как любым объектом, так же как формой (отличие в том, что визуализировать нельзя).
Преимущества неочевидны. Скажем если у тебя в проекте несколько форм работают с одними и теми же DB-компонентами (TQuery, TDataBase и т.п.), то чтобы не разбрасывать их по разным формам, можно их вынести в отдельный DataModule, для простоты и ясности.
А иногда наоборот, удобнее бывает компоненты держать не все скопом, а на каждой форме - свои.
Так же DataModule бывает удобен для передачи в DLL.
Скажем, тебе нужно передать TDataBase и штук 5 разных TQuery в некую библиотечную функцию в кач-ве параметров. Так вот, можно сделать 5 параметров соотв. типов, а можно один - TDataModule. ИМХО, гораздо удобнее.


 
eugene32   (2004-09-25 20:53) [8]

И передать в библиотечную функцию ДатаМодуль?


 
Vlad ©   (2004-09-25 20:58) [9]


> eugene32   (25.09.04 20:53) [8]
> И передать в библиотечную функцию ДатаМодуль?

Ну да. В DLL делаешь экспортируемую функцию, что-нибудь вроде

function CalculatePayment(DM: TDataModule): Double;
begin
// Тут обращаемся к объектам переданного датамодуля как обычно
DM.Query1.FieldByName(....).AsFloat
и т.д.
end;


 
eugene32   (2004-09-25 20:59) [10]

Vlad, спасибо за помощь. Немного прояснил обстановку ;)


 
kaif ©   (2004-09-26 04:24) [11]

Самое полезное в DataModule - размещать на них компоненты ImageList с картинками. А запросы я лично предпочитаю раскладывать по формам. В модуле данных у меня обычно только компонент базы данных лежит и одной глобальной readonly транзакции для разных часто требующихся читающих запросов.
Чтобы модуль данных был виден (доступен) в форме, нужно его просто в uses модуля формы указать.


 
eugene32   (2004-09-26 10:24) [12]

kaif, Благодарю.


 
msguns   (2004-09-27 10:03) [13]

Еще о пользе TDataModule
Если в проекте используется базовая форма, с которой наследуются рабочие формы (самый простой пример - со справочниками), при этом все формы-предки, ессно, не автосоздаваемые, то централизация описания некоторых методов и свойств объектов БД (и не только) ооочень удобно выносить в некий объект (ы), во-первых, автосоздаваемый и всегда существующий при выполнении приложения, во-вторых, "видимый" всеми остальными.
Кроме того, удобно централизовать основную часть логики в отдельно вынесенном блоке кода. (Я, в частности, реализую в датамодулях все пересортировки, модификации ВСЕХ таблиц, разнообразные AfterScroll и т.д., т.е. то, что по каким-то причинам не "влезло" в бизнес-логику на сервере)


 
msguns   (2004-09-27 10:04) [14]

при этом все формы-предки
Пардон, потомки, конюшно ;)))


 
eugene32   (2004-09-27 14:43) [15]

msguns, thanks for help ;)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
8-1090955751
parovoZZ
2004-07-27 23:15
2004.10.24
DirectDraw


4-1095743160
Rem
2004-09-21 09:06
2004.10.24
Текст на панельки


8-1091007521
xdev
2004-07-28 13:38
2004.10.24
Полупрозрачная форма


1-1097561774
aleshap
2004-10-12 10:16
2004.10.24
Как получить список свойств класса


1-1097220808
nef
2004-10-08 11:33
2004.10.24
Оптимизационный поиск на сетке





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский