Дать предыдущую запись выборки данных
Назначение
Команда
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; }