![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предок для класса с записью в БД [D7]
kosm © (2003-10-09 10:00:00)
Уважаемые Мастера!
Подскажите плиз, какого предка лучше (или однозначно) выбрать, для класса, который бы мог сохранять данные в БД. Тип БД пока не важен, но скорее всего это будет MSSQL или IB.
Пока напрашивается TDataset. Если использовать его, то какие методы придется переписывать?
PS: Посоветуйте хорошую литературу по данной тематике, плиз. Если в эл.виде такая где-то пробегала, то тоже не плохо :)
СПАСИБО!
Sergey_Masloff (2003-10-17 12:28:00) [1]
kosm (17.10.03 11:10) [54]
>А если работать через коллекции объектов (а не TDataset), то >тогда это уже будет тот же BOLD по сути дела или я ошибаюсь? :)
не ошибаешься
kosm (2003-10-17 11:10:00) [2]
Спасибо! Получил и описал ответ уже :)
А если работать через коллекции объектов (а не TDataset), то тогда это уже будет тот же BOLD по сути дела или я ошибаюсь? :)
Sergey_Masloff (2003-10-16 22:25:00) [3]
kosm (16.10.03 11:15) [52]
Блин, писал-писал а сообщение "слишком длинное". Ладно, кину в мыло.
kosm (2003-10-16 11:15:00) [4]
2Sergey_Masloff
Не совсем понял, как пользователь работал с коллекциями через датасет. Т.е. через обычные TDataset"ы (TQuery, TADO... и тп)?
Сергей, а пример реализации простенького класса "бизнес-объекта" не можешь кинуть (элемента какого нить справочника или тп)? Очень интересно как это выглядит.
А писанины я не боюсь... :)
СПАСИБО!
Sergey_Masloff (2003-10-15 20:38:00) [5]
>Интересно, как ты выводил список таких объектов.
>За совет - спасибо, я похоже тоже к тому склоняюсь...
Ну у меня есть так скажем "крупные" бизнес-объекты, каждый из которых включает в себя множество дочерних и связаных - все "дочки" висели в виде linked list, некоторые в виде деревьев (а деревья часто имели общие "листья" - через SQL с этим было работать трудновато).
С коллекциями таких объектов пользователь работал, естественно, через датасеты и SQL потому что тащить весь объект когда пользователь интересуется одним из пары тысяч атрибутов - просто глупо. А вот когда нужный "бизнес-объект" найден он поднимался в объект - и понеслась ;-) Использовалось и наследование и полиморфизм и много чего - вобщем, мне нравится как это работает но ОЧЕНЬ много руками писать рутинного кода. Я даже подумывал написать генератор кода но потом текучка заела бросил на стадии работающего макета.
kosm (2003-10-15 13:34:00) [6]
2Vuk
Еще раз пробежался по твоим ссылочкам - чего-то как-то не весело. Там обсуждается ООП подход к БД в целом. Еще не все дочитал, но чего-то сдается мне, что действительно не стоит заморачиваться на все это :)
На самом деле я сам толком не представляю что из себя будет представлять объект и как будут представлены результаты запросов.
Так если прикинуть, то единичные записи в виде объектов, действительно интересно. А вот результат запроса в виде коллекци к примеру. Как их выводить в грид? Походу заморочек много будет :(
Вот если результаты запросов будут свойства типа Dataset, то было бы куда интереснее.
2Polevi
Похоже зря я все это затеял? :(
На самом деле, наследование и полиморфизм были бы просто супер, но достаточно было бы просто объеденить методы работы с сущьностью в одном классе - все ж было бы удобнее наверно?
2Sergey_Masloff
Интересно, как ты выводил список таких объектов.
За совет - спасибо, я похоже тоже к тому склоняюсь...
Sergey_Masloff (2003-10-13 21:36:00) [7]
kosm (13.10.03 18:18) [42]
>Просто хочу отображение данных из СУБД в объекты.
>Объекты будут создаваться ручками (например при создании формы >правки сущности).
>Схема примерно такая:
>DB -> Obj -> NON DBAware Controls -> Obj -> DB
У меня есть такой функционирующий проект. Несколько сотен установок, работает уже пару лет. Мой совет - не заморачивайся.
Вот это:
>DB -> Obj -> NON DBAware Controls -> Obj -> DB
потребует много рутинной писанины, а то что получится имеет преимущество перед обычной схемой с датасетами только в очень ограниченом числе случаев. Так что перед тем как это писать советую очень сильно подумать - нужно ли оно тебе.
Если есть конкретные вопросы - спрашивай.
Vuk (2003-10-13 21:24:00) [8]
ещ Polevi:
>вы согласны что с объектами удобнее работать чем с набором
>данных в TDataset ?
Что в данном случае представляет из себя объект? Это только средство облегчение доступа к полям данных или нечто большее? Если нечто большее, то как это нечто функционирует?
Polevi (2003-10-13 21:14:00) [9]
>Vuk © (13.10.03 19:02) [46]
вы согласны что с объектами удобнее работать чем с набором данных в TDataset ? получаем преимущества ООП - наследование и полиморфизм
Vuk (2003-10-13 19:02:00) [10]
Я могу только советовать думать. :o)
Вопрос в том, для чего именно нужно объектное представление данных и что, как Вы думаете, оно Вам даст. Ведь абстрагирование от конкретной БД может быть достигнуто и при обычном подходе. DataSet - чем не абстракция?
Кстати, чем будут с Вашей точки зрения являться результаты запросов в которых могут быть части данных отдельных сохраненных "объектов"?
kosm (2003-10-13 18:50:00) [11]
2Vuk
А как Вы посоветуете подойти к этому делу?
А если DBAware?
Vuk (2003-10-13 18:40:00) [12]
Кстати, при неиспользовании DBAware controls рискуете потерять много удобных и полезных возможностей...
Vuk (2003-10-13 18:37:00) [13]
То есть хотите представления наборов данных в виде коллекций?
kosm (2003-10-13 18:18:00) [14]
2Vuk
Просто хочу отображение данных из СУБД в объекты.
Объекты будут создаваться ручками (например при создании формы правки сущности).
Схема примерно такая:
DB -> Obj -> NON DBAware Controls -> Obj -> DB
Vuk (2003-10-13 16:50:00) [15]
Можно поподробнее о том, что Вы хотите сделать?
Каким образом возникают объекты в приложении? Какие будете использовать средства отображения (DB-контролы или что-то иное)? Каково взаимодействие с DataSet?
kosm (2003-10-13 16:47:00) [16]
Polevi ау :)
kosm (2003-10-13 11:59:00) [17]
Да, похоже я всех достал... :))
kosm (2003-10-13 10:58:00) [18]
Все время использовал копоненты (ну максимум создавал классы от TObject), не задумывался о иерархии классов и наследовании, полиморфизме, в общем об ООП как таковом - кидай на форму, выставляй что надо и как надо и все. Но это ИМХО не правильно, надо двигаться...
kosm (2003-10-13 10:55:00) [19]
Вот именно... Чуствую я, что чего-то недопонимаю :)
Polevi (2003-10-13 10:53:00) [20]
причем тут TQuery