Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кто силён в Recordset, вопрос:
 
 автор: seluvan   (21.03.2012 в 13:58)   личное сообщение
 
 

А объясните мне, каким рекордсетом лучше пользоваться: DAO или ADODB.
Просто я никогда не присваиваю эти объекты, а сейчас заинтересовался как в Immediate выводить набор записей для себя. Получаеся, но только через ADODB.
Соррри если что за оффтоп.

  Ответить  
 
 автор: ДрЮня   (21.03.2012 в 14:05)   личное сообщение
 
 

ADO лучше

  Ответить  
 
 автор: shanemac51   (21.03.2012 в 14:11)   личное сообщение
 
 

однажды встретила изречение

избалованные DAO программисты не спешат осваивать ADO



в ADO какие-то сложности при программном поиске по 2-3 полям, сейчас уже не помню нюансов
.... вот и осталась на DAO

  Ответить  
 
 автор: seluvan   (21.03.2012 в 14:14)   личное сообщение
 
 

мда. но разница основная в чём? может я не по теме пишу конечно, но чисто практичность двух методов чем отличается.
В виводе записей?

  Ответить  
 
 автор: shanemac51   (21.03.2012 в 14:25)   личное сообщение
 
 

с другой стороны
DAO
--связанные таблицы в основном делаются диспетчером связанных таблиц и для простых запросов и динамических
--не надо знать имя обработчика
-- несложно сменить место жительства

ADO --все примеры, что я смотрела,
--связь в коде,(но возможно это аукнется при переходе на а2012\а2014--может не оказаться опорной библиотеки-придется залезать в код)
--я уже где-то видела анализ версий для присвоения обработчика
--хотя привязаться к диапазону ячеек екселя возможно и проще

  Ответить  
 
 автор: osmor   (21.03.2012 в 14:32)   личное сообщение
 
 

поясните что имеете ввиду


--не надо знать имя обработчика
-- несложно сменить место жительства

  Ответить  
 
 автор: shanemac51   (21.03.2012 в 14:52)   личное сообщение
 
 

поясните что имеете ввиду


--не надо знать имя обработчика
---------выбираем тип файла из списка
-- несложно сменить место жительства
---------сейчас точно не помню синтаксиса, но
currentdb.tabledefs("tab1").connect="c:\rab\" --не уверена,что свойство connect, подзабыла немного

  Ответить  
 
 автор: osmor   (21.03.2012 в 14:59)   личное сообщение
 
 

понял
для изменения connect у связанных таблиц в ado так же легко только нужно использовать adox

  Ответить  
 
 автор: osmor   (21.03.2012 в 14:31)   личное сообщение
 
 

пока живете на чистом access в принципе почти все равно.
как только начнете работать с sql server лучше использовать adodb
ado более современная технология значительно шире чем просто работа с данными из таблиц.

  Ответить  
 
 автор: Анатолий (Киев)   (21.03.2012 в 16:05)   личное сообщение
 
 

Основные достоинства ADODB:
1. Нет метода Edit, редактирование записи начинается с первым изменением в поле. Часто это упрощает код, когда нужно определиться, редактировать запись или нет.
2. Возможна запись нескольких добавленных/измененных записей скопом (UpdateBath)
3. Можно создать отвязанный (виртуальный) Recordset
4. Есть метод GetString, позволяющий получить строку с указанными разделителями полей и записей.
Основные недостатки ADODB:
1. Поиск возможен только по одному полю. Спецификация оператора Like, требования к строковым критериям и проверке на Null - другие.
2. На основе сохраненного запроса с параметрами можно получить только Recordset типа forward-only, read-only.

Есть много отличий в стратегии, например:
1. Есть только метод Find, которому можно указать направление поиска и игнорирование текущей записи. Нет св-ва NoMatch, нужно проверять BOF или EOF (в зависимости от направления поиска).
2. Добавленная запись становится текущей
3. Результат применения методов Filter и OrderBy отражается в этом же Recordset-е (в DAO нужно получить другой экземпляр).

Надо помнить, что в MDB Recordset формі/отчета, это DAO.

Я, лично, предпчитаю DAO и использую ADO только, когда нужгны достоинста, описанные выше.


в Immediate выводить набор записей для себя.

Это как? GetString?

  Ответить  
 
 автор: osmor   (21.03.2012 в 16:24)   личное сообщение
 
 

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList