Как переместиться на нужную позицию по счётчику в БД?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Как переместиться на нужную позицию по счётчику в БД?

Сообщение Nikolka » 10.07.2005 (Вс) 13:42

...По счётчику. Неужели нет другого способа кроме как:

(ObjectsDB - БД, "ID" - поле со счётчиком.)

Public Sub NewPos(ByVal no As Long)
ObjectsDB.Recordset.MoveFirst
Do
If ObjectsDB.Recordset("ID") = no Or ObjectsDB.Recordset.EOF = True Then Exit Do
ObjectsDB.Recordset.MoveNext
Loop
End Sub

Absolute Position не подойдёт, т.к. он тока на нужный номер записи в БД перемещается. А нужно на нужный номер счётчика.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.07.2005 (Вс) 13:55

Например,
.filter = "ID = " & cstr(no)
Запомнил bookmark
.filter = vbnullstring

Или, например, .Fing "ID = " & cstr(no)

Или, например, .Seek...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 10.07.2005 (Вс) 15:47

А что из этого самое быстрое?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 10.07.2005 (Вс) 20:31

Find достаточно быстр; чем от него отличается Seek, не помню - читай первоисточники...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.07.2005 (Пн) 2:23

Seek индекс юзает и не работает без оного...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение alibek » 11.07.2005 (Пн) 8:13

Поправлюсь, в DAO между Find и Seek разница на порядки (Find не юзает индексы). В ADO движок сам умеет юзать индексы, если они есть, поэтому там разница куда меньше. Но у Seek есть несколько полезных опций при поиске.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.07.2005 (Пн) 12:54

alibek писал(а):Поправлюсь, в DAO между Find и Seek разница на порядки (Find не юзает индексы). В ADO движок сам умеет юзать индексы, если они есть, поэтому там разница куда меньше.


А если их нет то для клиентского курсора их можно без проблем создать.
При этом его смогут использовать Find и Filter.

alibek писал(а):Но у Seek есть несколько полезных опций при поиске.


Seek с клиентскими курсорами не работает, оттого я его и не использую.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList