![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предок для класса с записью в БД [D7]
kosm © (2003-10-09 10:00:00)
Уважаемые Мастера!
Подскажите плиз, какого предка лучше (или однозначно) выбрать, для класса, который бы мог сохранять данные в БД. Тип БД пока не важен, но скорее всего это будет MSSQL или IB.
Пока напрашивается TDataset. Если использовать его, то какие методы придется переписывать?
PS: Посоветуйте хорошую литературу по данной тематике, плиз. Если в эл.виде такая где-то пробегала, то тоже не плохо :)
СПАСИБО!
kosm (2003-10-09 17:11:00) [41]
Сергей, огромное спасибо - посмотрю чо да как там.
А по литературе ничего не можешь подсказать?
PS: Кстати, я тоже из Питера :)
Polevi (2003-10-09 15:55:00) [42]
посмотри как работает TStream.ReadComponent, TStream.WriteComponent
kosm (2003-10-09 13:49:00) [43]
Ок, БИГ СЕНКС! В общих чертах понял.
Если не сложно, не можешь объяснить, или ткнуть носом где глянуть (на примере), каким образом...
--
>TPersistObject=class(TPersistent)
>учим этот класс сохранять Publiched св-ва в TStorage
А еще лучше подскажи плиз, какую литературу стоит почитать. Сейчас очень много книжек, где описывается как кнопки нажимать, а хочется именно базу получить...
Благодарен за советы и помощь!
Polevi (2003-10-09 13:18:00) [44]
упс
TCustomer=class(TPersistObject)
Polevi (2003-10-09 13:16:00) [45]
TStorage=class
TDbStorage=class(TStorage)
TADOStorage=class(TDbStorage)
TSQLServerStorage=class(TADOStorage)
TPersistObject=class(TPersistent)
учим этот класс сохранять Publiched св-ва в TStorage
TCustomer=class(TDBPersistObject)
экземпляры TCustomer умеют сохранять себя в TStorage, нпример в базу MS SQL Server
kosm (2003-10-09 12:58:00) [46]
2Polevi
Это я читал. Ну а так в двух словах, в чем его приимущество?
И зачем мне стрим?
Polevi (2003-10-09 12:48:00) [47]
TPersistent encapsulates the behavior common to all objects that can read and write their properties to and from a stream
kosm (2003-10-09 10:58:00) [48]
2Polevi
А можешь объяснить, почему?
kosm (2003-10-09 10:55:00) [49]
Просто хотелось бы оперировать сущностями, а не произвольными данными TQuery. К примеру, если я просто буду работать с VCL и формой, то при необходимости сохранить тот же TCustomer в БД, мне придется повторяться...
2Anatoly Podgoretsky
Т.е. лучше будет, если определиться с движком БД и выбрать уже далее по иерархии? Вопрос. Каким образом пишуться мультиплатформенные (в отношении движка) БД? Т.е. как разделить данные от методов их физического хранения в БД?
Или опять же не стоит это того и это лишняя трата времени, сил, и никакого толку?
Просто интересно мнение компетентных в этом специалистов.
СПАСИБО!
Polevi (2003-10-09 10:51:00) [50]
TPersistent
Anatoly Podgoretsky (2003-10-09 10:43:00) [51]
TDataset наиболее общий универсальный предок, при конкретике можно выбрать далее по иерархии
Плохиш_ (2003-10-09 10:33:00) [52]
>kosm (09.10.03 10:24) [2]
> Просто накидать на форму TTable, TQuery и юзать их?
Да, для начала неплохо, а велосипед будешь изобретать потом ;-)
Семен Сорокин (2003-10-09 10:31:00) [53]
стандартных много, все зависит от СУБД и выбора доступа к данным.
Например чем не устраивает TQuery?
kosm (2003-10-09 10:24:00) [54]
Стандартные - это какие?
Просто хотелось бы иметь базовый класс (допустим TCustomer) с необходимой структурой и методами. Методы же работы с БД переопределить в будущем потомке...
Или у меня не верный подход к этому делу? :) Просто накидать на форму TTable, TQuery и юзать их?
Семен Сорокин (2003-10-09 10:13:00) [55]
см. реализацию в DBTable и DB,
а чем стандартные не устраивают?