Перемещение по выборке – LINTER_Fetch

Прототип функции

 
L_LONG LINTER_Fetch(
  L_WORD CursorID,   /* идентификатор курсора */
  L_SWORD Direction, /* направление перемещения */
  L_LONG Position,   /* номер строки в выборке */
  L_LONG RowCounter, /* число требуемых ответов */
  L_LONG *RowAnswer, /* число полученных ответов */
  void *AsyncFunc,   /* функция обработки ответа */
  void *UserArg);    /* пользовательский аргумент */

Входные параметры

Параметр Описание
CursorID  Идентификатор курсора
Direction  Направление перемещения
Position  Номер строки
RowCounter  Требуемое количество строк в выборке (неположительный RowCounter преобразуется к 1)
AsyncFunc  Адрес функции обработки ответа
UserArg  Аргумент пользователя

Выходные параметры

Параметр Описание
RowAnswer  Реальное количество строк, занесенных в буфер ответа

Описание

Помещает в буфер ответа указанное количество записей ответа, начиная с той, которая определена направлением Direction (для направлений toAbsNumber и toRelNumber учитывается еще и номер Position).

Примечание

Текущей становится строка, находящаяся в буфере последней.

Направления, возможные для описываемой функции, приведены в таблице 3.

Таблица 3. Идентификаторы направлений для LINTER_Fetch
ОбозначениеНаправлениеНомер текущей строки
toNext На следующую запись CurrNumber+RowAnswer
toPrevious На предыдущую запись CurrNumber-1+RowAnswer-1
toFirst На первую запись RowAnswer
toLast На последнюю запись LastNumber
toAbsNumber На запись с указанным абсолютным номером в ответе (по абсолютному номеру) Position+RowAnswer-1
toRelNumber На запись с указанным номером относительно текущей записи (по относительному номеру) CurrNumber+Position+RowAnswer-1
toFromEnd С конца LastNumber

Пример

long lError
short nCursID;
...
if (lError =LINTER_Fetch(nCursID, toNext, 0, 20, NULL, NULL, NULL))
  processing_error(lError, 0, nCursID, 0, "LINTER_Fetch");