Мир InterBase


Набор строк - часть 2


Пример создания набора строк, способа пропуска строк и возвращения курсора на начало набора:

ADODB

cmd.CommandText = "select * from job where job_code=:job_code"

cmd(";job_code") = "Eng"


Set rs = cmd.Execute

'последовательный обход всех строк множества

While Not rs.EOF

rs.MoveNext

Wend

rs.MoveFirst 'Restart

rs.Move 1 'пропускаем первый ряд

'...

rs.MoveFirst 'Restart

rs.Kove 2 'пропускаем первые два ряда

'...

Произвольный доступ к результирующему множеству SQL-запросов IBProvider имитирует за счет кеширования выбранных данных на стороне клиента. Для работы в этом режиме провайдер использует более совершенный компонент управления множеством, реализующий возможности обратной выборки и произвольного перемещения по набору данных, а также возможность "приблизительного" позиционирования. И кроме того, в режиме произвольного доступа набор строк предоставляет закладки строк, с помощью которых клиент может быстро возвращаться к некоторой строке. В некотором смысле закладки строк эквивалентны идентификатору строки (HROW), но гораздо более эффективны и не требуют никаких ресурсов для хранения. Кроме того, при работе через ADODB значение закладки текущей строки можно получить и сохранить для дальнейшего использования (см. ADODB.Recordset.Bookmark), а идентификатор строки - нет.

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

Пример позиционирования курсора набора рядов в случайном порядке.

ADODB

Dim cmd As New ADODB.Command

Dim rs As ADODB.Recordset

cmd.ActiveConnection = cn

cmd.CommandText = "select * from job where job_code=:job_code"

cmd("job_code") = "Eng"

'включаем поддержку закладок

cmd.Properties("Use Bookmarks") = True

Set rs = cmd.Execute

Dim i As Long

For i = 0 To rs.RecordCount

'нумерация с единицы

rs.AbsolutePosition = CLng(Rnd * rs.RecordCount) + 1




Начало  Назад  Вперед



Книжный магазин