Дать предыдущую запись выборки данных

Назначение
 

Команда GETP возвращает предыдущую (по отношению к текущей) запись выборки данных.

Параметры вызова

inter(CBL, VarBuf, NULL, [CondBuf], RowBuf);

Входные данные

Входными данными является контрольный блок CBL.

В нем должны быть заполнены поля:

Имя поля Значение
NumChan Номер канала
Command "GETP"
LnBufRow Длина буфера выборки данных
Node Имя ЛИНТЕР-сервера
Выходные данные

Выходными данными являются:

  • контрольный блок CBL;

  • буфер выборки данных RowBuf;

  • буфер параметров VarBuf.

В контрольном блоке будут возвращены:

Имя поля Значение
CodErr Код завершения запроса к СУБД ЛИНТЕР
RowId Системный номер выбранной записи
LnBufRow Фактическая длина буфера выборки данных
SysErr Код состояния ОС

Буфер выборки данных RowBuf будет содержать предыдущую (по отношению к текущей) запись выборки данных.

В буфере VarBuf возвращается маска NULL-значений.

Описание

Команда выдает запись выборки данных, предшествующую текущей записи выборки. Текущей записью является последняя запись, реально выданная по данному каналу.

Коды завершения
Код Описание
NORMAL Нормальное завершение
SMALLBUFKOR Недостаточный размер буфера выборки данных
EORR Искомые данные не найдены (выборка данных пуста, или запрашивается предыдущая запись перед первой записью выборки)
ERRSEQCOM Неправильная последовательность команд (команда GETP подана вне контекста SELECT-запроса)
Пример формирования команды
#include < string.h >
#include < stdlib.h >
#include "inter.h"

L_LONG LinterGETP(TCBL *pCBL, void *RowBuf, L_WORD RowBufLen, void *NullBuf)
   {
   memcpy(pCBL- >Command, "GETP", 4);
   pCBL- >LnBufRow=RowBufLen;
   inter(pCBL, NullBuf, NULL, NULL, RowBuf);
   return pCBL- >CodErr;
   }
Пример использования команды