![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Есть у меня некий класс Назовем его TMyClass у него есть куча свойств. Я хочу сохранить этот класс в БД. Но хочу сделать это по умному
То есть написать класс который будет все это делать в нем же сделать возможным сохранения в любую выбранную (естественно заранее писаную БД). Абы как я это могу написать но хочется дельного совета как это сделать грамотно с точки зрения ООП. Статьи или даже примеры будут очень кстати. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
имхо у класса есть еще и реализация , как с ней быть ?
а по теме видать надо ReadComponent, WriteComponent -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Romikgy, Наверное выразился не верно именно реализацию класса с его текущими значениями свойств и переменных...
Причем я не спрашиваю как получить property это я и сам знаю... интересует именно правильная структура классов как это нужно делать чтоб все было красиво и при необходимости можно было не долго думаю добавить еще одну Бд в которую можно будет сохранять. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
не понял
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Romikgy, Есть класс у него есть своиства мы делаем энкземпяр класса и присваеваем его своиствам разные значения например
Потом я описываю класс (собственно который меня и интересует) в который я передаю My и какую БД я хочу сохранить например Oracle Или MS SQL 2005. Этом классе записывает в БД в определенную таблицу (скажем в этом классе есть их список для каждой БД) ну и сохраняется мое значение My то есть в Бд появится запись в какой то конкретной таблице (соответствие есть в классе) ID | NAME 1 | "ТЕСТ". В принципе фонарными if else можно обойтись но я хочу грамотную расширяемую систему. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
на простом примере понятно
что расширятся будет ? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Romikgy, Расширять будем количество БД в которые сохранять можно (хотя даже не тока БД) можно будет и в XML и текстовый файлы короче куда угодно ...
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
не понятно какое отношение имеет кол-во БД к сохранению класса....
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
WaReZMEN, я правильно понял, что сохранить этот класс в БД = сохранять в БД значения полей экземпляров класса?
И еще: 1. А если у класса есть свойства, которые тоже являются классами? 2. А если класс со временем изменится? Есть интересная штука - модель EAV, которую как раз и создавали для описания нашего вечно меняющегося нестабильного мира. А тут RTTI пригодится... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Romikgy, блин. Скажем так с начало мы сделали сохранение в БД Oracle потом захотели чтоб те же данные можно было сохранять в MS SQL потом захотели эти же данные сохранять в XML потом вообще захотели сохранять в txt. Кол-во баз изменилось (точнее не баз а мест хранения). Естественно что хранение не во всех местах сразу а выбирается при установке или настройки системы. к слову кол-во придираться не стоит ... Фактически в системе могут появляться новые места хранения в следствие чего их кол-во изменится это логично....
|
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
можно сделать так
пишеш базовый(абстрактный) класс для сохранения данных в его потомках реализуеш функцию сохранения чтения
Это сообщение отредактировал(а) Frees - 5.8.2009, 12:53 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Frees, ну вот что то подобное я и имел виду... А есть реальные примеры статьй как это лучше сделать?
|
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
подобное видел в примерах статей типа"принцыпы ООП" Добавлено через 55 секунд в DRKB статья "Краеугольные камни ООП" нечто подобное -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| WaReZMEN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 683 Регистрация: 9.6.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 3 |
Frees,
Добавлено через 4 минуты и 16 секунд RockClimber, если класс изменится ясное дело надо переписывать и сохранение. если свойства классы то естестве но лезим в глубь... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
непонятное поле .... WaReZMEN, я не блин ... зачем тогда делать динамику , если каждый раз будется переписыватся ф-ция сохранения в БД при изменении интерфейса класса....? напиши 2 ф-ции у класса запомнить в БД и считать из БД и в них считывай и пиши все данные какие хочешь .... это грубо говоря запоминание "статических" данных класса , а не реализации ... это проще .... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |