Класс как БД

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Класс как БД

Сообщение Чудик » 26.07.2004 (Пн) 15:00

Есть мысль использовать класс для создания базы данных. Типа как класс Record со свойствами Value1, Value2 и Value3. И при добавлении новой записи в БД создавать постоянно новый экземпляр класса. При работе с БД получается будем работать непосредственно с коллекцией упомянутого класса. Не уверен, что идея правильная, поэтому решил вынести ее на общее обсуждение. Может кто-то раскроет мне глаза на мои ошибочные взгляды? Или наоборот поддержит? Заранее извиняюсь, если моя идея является глупой. :!:
Век живи - век учись!
www.detal-plast.narod.ru

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 26.07.2004 (Пн) 18:00

Во-первых никакая идея глупой не бывает (кто-то до этого додумался раньше)
На мой взгляд эфективнее использовать такой метод когда тебе необходимо совместить малосовместимые абстракции, например заполнить TreeView данными из Recordset ( случай редкий, а может и нет ). Здесь имеет смысл создавать класс в котором есть коллекция объектов класса, который, в свою очередь, содержал бы в себе ссылки на запись в Recordset, и на Node из TreeView.
Тогда в рамках этого класса можно редактировать оба элемента сразу.
В смысле редактировать данные, а хранилище и отображение только обновлять.
Я не претендую на истину в последней инстанции, просто сейчас доделываю ActiveX для отображения XML-файла, и пришел к выводу что удобнее создать класс(управляющий), в котором есть коллекция(просто, пока, коллекция) других классов(данные).
Вообще интересно было-бы поговорить на такие темы. А то всё больше "А как ...", хотя ответами, чего грешить, сам иногда пользуюсь

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 26.07.2004 (Пн) 20:50

Кажется подобный подход был в книге: MCSD - Desktop Applications with MS VB 6.0. Там как раз изпользуют класс для записи и потом привязывают к нему Recordset (DataSourceBehavior).
Ученье - свет, неученых - тьма.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Класс как БД

Сообщение Чудик » 27.07.2004 (Вт) 10:04

А можно чуть поподробней о DataSourceBehavior, если реально? И, кстати, наскольско все-таки целесообразно использовать класс в целях создания БД (типа телефоного справочника)? Есть какие-то преимущества или их нет? Может это дело вкуса? :study:
Век живи - век учись!
www.detal-plast.narod.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.07.2004 (Вт) 10:05

Если база небольшая, то вполне даже целесообразно. Преимущества - компактность, автономность, все в памяти. Но вообще это дело вкуса.
Lasciate ogni speranza, voi ch'entrate.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 27.07.2004 (Вт) 10:14

А что о DataSourceBehavior? С чем едят? Вообще-то я подумывал о связи с тектовым файлом. Может это и есть? только другая формулировка. Или есть отличия?
Век живи - век учись!
www.detal-plast.narod.ru

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 27.07.2004 (Вт) 20:05

DataSourceBehavior=vbDataSource позволяет изпользовать клас как източник данных, вместо recordset или ADODC. Польза в том, что в классе можно прописать процедуры проверки полей, update связанных таблиц и ещо кучю другой муры.
Поищи файл "MS Press - MCSD Training Kit - Desktop App with MS VB 6.0.CHM" (там где я тянул убрали). В нем показано как можно използворать класс для учета гостей отеля. По моему личному мнению идейный проект примера хреновый, но идею класса илюстрирует хорошо. Если интересно можно поискать архив и скинуть кусок изходника...
Ученье - свет, неученых - тьма.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Класс как БД

Сообщение Чудик » 28.07.2004 (Ср) 8:17

Понимаю, что это не скромно, но, все утро упорно рыскал, а упомянутый файл не нашел. Устал... Может все-таки где-то лежит архивчик? Или часть исходника, как упоминалось? Уж очень стало интересно. От одной мысли разраслась целая мыслища!!! Понимаю, что из-за моей серости.
Век живи - век учись!
www.detal-plast.narod.ru

Samovar
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 23.05.2004 (Вс) 8:13

Сообщение Samovar » 29.07.2004 (Чт) 16:44

Это выглядит премерно так:

1.Создаеш класс и делаеш свойство DataSourceBehavior=1 (vbDataSource)

2.Тогда в классе, кроме стандартных Initialize и Terminate (где можно прописать связь с настоящей БД) появится функция GetDataMember:
Private Sub MyDBClass_GetDataMember(DataMember As String, Data As Object)
Надо присвоить параметру Data нужный Recordset:
Set Data=myRS

3.Создать Object этого самого класса, напр. myDBObj

4.Вместо Recordset или ADODC компонента изпользовать myDBObj:
Set txtTextField.DataSource=myDBObj

P.S. Зачем все это нужно - в книжке. MS из нее деньги делает, так что свободно найти текст будет очень трудно. Вроде видел ee в Ozone-е...
Ученье - свет, неученых - тьма.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Класс как БД

Сообщение Чудик » 31.07.2004 (Сб) 10:06

Спачибо всем, принявшим участие в данной теме! :cheers:
Век живи - век учись!
www.detal-plast.narod.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 32

    TopList  
cron