Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DAO.RecordSet Options / 18 сообщений из 18, страница 1 из 1
18.05.2004, 10:26
    #32521559
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Народ тут столкнулся с тем что надо открыть RecordSet только для разового чтения... а там опций ууу... и все так классно документированы....
вроде бы dbOpenForwardOnly пондравилось, но я всегда делал rst.EOF и rst.BOF для проверки...
что присоветуете?
часть таблиц в mdb на серваке + на SQL Server, через ODBC законектился...
и вся ента байда в Access'e 97

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 10:34
    #32521571
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Я когда в DAO rs открываю только для чтения, то пропускаю все опции нафиг - не хай по дефолту ставит :)

Типа: Set rs = CurrentDB.OpenRecordSet(strSQL)

Хотя это мое, чисто субъективное, мнение (возможно я и не прав)
...
Рейтинг: 0 / 0
18.05.2004, 10:42
    #32521594
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Не, ну если рекордсет для разового чтения, то, действительно, нехай все опции по дефолту ставятся, что мудрить-то...
...
Рейтинг: 0 / 0
18.05.2004, 11:27
    #32521727
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
да просто это достаточно узкое место хотелось бы его максимально облегчить

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 11:31
    #32521731
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Проверено:

1. dbOpenSnapshot не надо, даже если очень хочется; dbOpenDynaset бустрее. При этом dbOpenDynaset можно не писать, если это селект, и нужно писать, если это имя таблицы.

2. dbReadOnly (в следующем параметре) ускоряет жизнь.
...
Рейтинг: 0 / 0
18.05.2004, 11:33
    #32521736
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
вроде работеает eof

Dim r As Recordset
Set r = CurrentDb.OpenRecordset("temp1", dbOpenForwardOnly)
Do Until r.EOF
MsgBox r.Fields(0)
r.MoveNext
Loop

и если есть записи, и если нет.
...
Рейтинг: 0 / 0
18.05.2004, 11:42
    #32521761
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
2 ВС
спасибо за замечания, у меня запрос

2 Geo
EOF и должно работать...
но быстрее ли с dbOpenForwardOnly?
просто я упоминул про BOF & EOF я их использовал для определения есть ли записи в данном наборе...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 11:51
    #32521779
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Это померять бы надо. Да на большом (очень) рекордсете, чтоб кэши не мешали.
...
Рейтинг: 0 / 0
18.05.2004, 12:10
    #32521834
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
мдаа... не мешало бы... ну и хрен с ним... буду юзать вариант CB

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 13:16
    #32522046
странно
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
авторdbOpenSnapshot не надо, даже если очень хочется; dbOpenDynaset бустрее
?

а не в том ли сермяга, что dbOpenDynaset _визуально_ быстрее (асинхронник) выкидывается в форму, а dbOpenSnapshot получает все записи?

а если какая-то обработка курсором по всем полям, то dbOpenSnapshot могабыть и не хуже ?
...
Рейтинг: 0 / 0
18.05.2004, 13:22
    #32522064
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
странноа если какая-то обработка курсором по всем полям, то dbOpenSnapshot могабыть и не хуже ?надо считать Recordset в цикле в строку. в ТЗ не было дополнительных указаний...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 13:26
    #32522077
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
2 странно:

Нет, это проверялось на программе, которая открывала рекордсет, проходила по нему и закрывала его.
...
Рейтинг: 0 / 0
18.05.2004, 14:00
    #32522192
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
да кстате доп вопрос в тему
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
With rst
    If Not (.EOF And .BOF) Then
      Do Until .EOF
        s = s & !Delivery & ";" & !ContractNr & ";" & !CustomerName & ";True;"
        rst.MoveNext
      Loop
    End If
  End With
проверка в if здесь избыточна?

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 14:06
    #32522214
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Конечно. Если нет записей, то и проверки в Until достаточно.
...
Рейтинг: 0 / 0
18.05.2004, 14:14
    #32522252
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
>доп вопрос
Обычно перед циклом по рекордсет хочется сделать movefirst, а если нет записей, он вернет ашипку. Поэтому
If not (.Eof and .Bof) Then .MoveFirst
While not .eof
..
.movenext
wend
...
Рейтинг: 0 / 0
18.05.2004, 14:22
    #32522283
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
MoveFirst можно не делать. Если есть записи, то оно произойдет само.
...
Рейтинг: 0 / 0
18.05.2004, 14:26
    #32522295
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
Он и так на 1ой записи находится...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
18.05.2004, 14:26
    #32522297
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DAO.RecordSet Options
От сервера зависит. Я всегда так пишу. Че на дядю надеятся, лучше самому сделать:-)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DAO.RecordSet Options / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]