Дилетантский вопрос по доступу к данным

YK13
Дата: 14.05.2006 22:35:07
Всем доброго времени суток!
У меня вопрос начинающего. Есть ранняя версия приложения, работающая с БД (в настоящее время Access). Для чтения и записи используется Технология DAO идет работа с ResordSet. Чтобы принять правильное решение для новой версии хочу спросить хранит ли RecordSet (и вообще каковы принципы работы RecordSet, в DAO я не специалист) данные в памяти или работает напрямую с БД и что лучше использовать в плане быстродействия DAO или ADO (в ADO предполагается работать на прямую через OleDb.DataReader)
Зараннее благодарен за помощь
YK13
Дата: 15.05.2006 16:50:26
Неужели никто не знает ответа?
Или может это только с точки зрения начинающего, Гуру должны знать ответ на этот вопрос?
Moristar
Дата: 15.05.2006 17:08:24
ничего он не хранит - вычитывает все из базы. Нечто похожее в шарпе DataReader
Moristar
Дата: 15.05.2006 17:09:32
И ваще! Используйте отсоединенную модель!
YK13
Дата: 15.05.2006 17:22:27
Moristar
ничего он не хранит - вычитывает все из базы. Нечто похожее в шарпе DataReader

Спасибо, теперь понятно.

Moristar
И ваще! Используйте отсоединенную модель!

Это в смысле DataSet??? (Я имею в виду в более широком смысле чем класс DataSet, а именно DataAdapter и какоелибо хранилище данных типа DataTable)

А вообще по быстродействию что можете сказать в сравнении
DAO(RecordSet), ADO(DataReader), ADO(DataAdapter)
-=LL=-
Дата: 15.05.2006 17:59:15
ой.... епт.

http://www.sql.ru/docs/mssql/adoandsql/index.shtml

http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/VBInHistory/VB60_ADO-1.mspx
Moristar
Дата: 15.05.2006 18:27:31
-=LL=-
ой.... епт.

http://www.sql.ru/docs/mssql/adoandsql/index.shtml

http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/VBInHistory/VB60_ADO-1.mspx

Че вы сюда ВБ пихаете?

Насчет отсоединенной модели. Имеется в виду вся связка DataAdapter - DataSet - DataTable. Удобна, практична, возможность транзакции, накопления значений, которые меняются махом, всяческие полезные и удобные аспекты, которых описавать здесь не хватит места. Вобще удобно иметь небольшую локальную копию необходимого участка базы.
Moristar
Дата: 15.05.2006 18:31:51
Да...
Если говорить о быстродействии, то безусловно DataReader здесь быстрее всего будет,но он естественно не так удобен как ДатаАдаптер (по сути, DataReader вшит внутрь DataAdapter'a).

ДАО - это умершая технология.
А Рекордсет - это вобще такая гадость! В бытность свою программистом на С++ я с ним так намучался, что теперь никакого желания продолжать нет :))
YK13
Дата: 15.05.2006 20:11:07
Moristar
Да...
Если говорить о быстродействии, то безусловно DataReader здесь быстрее всего будет,но он естественно не так удобен как ДатаАдаптер (по сути, DataReader вшит внутрь DataAdapter'a).

Ну здесь в общем-то по логике вещей понятно. Меня больше (с учетом всего выше разъясненного в данной теме форума) интересует сравнение быстродействия DAO(RecordSet) и ADO(DataReader)

Moristar
Да...
ДАО - это умершая технология.
А Рекордсет - это вобще такая гадость! В бытность свою программистом на С++ я с ним так намучался, что теперь никакого желания продолжать нет :))


Есть ранняя версия приложения. Там используется DLL реализующая DAO. Вообще работа идет с локальной БД. (Вообще приложение считывает и обрабатывает данные с измерительного прибора подключенного к компу и хранит эти данные в локальной БД... Приложение охватывает только период времени работы с измерительным прибором. Дальнейшая судьба полученных данных это уже другая история.....) Вышеуказанная DLL работает нормально и к счастью я не испытываю при работе с ней никаких мучений. Но чтобы написать новую DLL уже работающую на основе ADO, мне это надо как то аргументированно обосновать переход с DAO на ADO. Я вообще не знаю является ли аргументом то что в самом FW использование DAO не реализовано (может я не правильно выразился, я имею в виду то, что для того чтобы в каком либо проекте мне использовать DAO то мне нужно подключать необходимую сборку не из раздела .NET). Какие можно еще привести аргументы?
Спасибо за отклик