Дать указанную запись выборки данных
Назначение
Команда
GETS
возвращает указанную запись выборки данных.
Параметры вызова
inter(CBL, VarBuf, NULL, [CondBuf], RowBuf);
Входные данные
Входными данными является контрольный блок
CBL.
В нем должны быть заполнены поля:
| Имя поля | Значение | |
|---|---|---|
NumChan
| Номер канала | |
Command
|
"GETS"
| |
RowId
| Порядковый номер требуемой записи выборки данных | |
LnBufRow
| Длина буфера выборки данных | |
Node
| Имя ЛИНТЕР-сервера |
Выходные данные
Выходными данными являются:
-
контрольный блок
CBL; -
буфер выборки данных
RowBuf; -
буфер параметров
VarBuf.
В контрольном блоке будут возвращены:
| Имя поля | Значение | |
|---|---|---|
CodErr
| Код завершения запроса к СУБД ЛИНТЕР | |
RowId
| Системный номер выбранной записи | |
LnBufRow
| Фактическая длина буфера выборки данных | |
SysErr
| Код состояния ОС |
Буфер выборки данных
RowBuf будет содержать указанную запись выборки данных.
В буфере
VarBuf возвращается
маска NULL-значений.
Описание
Команда выдает указанную запись выборки данных, которая становится текущей.
Коды завершения
| Код | Описание | |
|---|---|---|
| NORMAL | Нормальное завершение | |
| SMALLBUFKOR | Недостаточный размер буфера выборки данных | |
| EORR | Искомые данные не найдены (выборка данных пуста, или запрашивается несуществующая запись) | |
| ERRSEQCOM |
Неправильная последовательность команд (команда
GETS
подана вне контекста SELECT-запроса)
| |
| NOKOR | Запись недоступна (удалена или заблокирована по другому каналу) |
Пример формирования команды
#include <string.h>
#include <stdlib.h>
#include "inter.h"
L_LONG LinterGETS(TCBL *pCBL, L_LONG N, void *RowBuf, L_WORD RowBufLen,
void *NullBuf)
{
memcpy(pCBL->Command, "GETS", 4);
pCBL->LnBufRow=RowBufLen;
pCBL->RowId=N; /* номер записи */
pCBL->PrzExe &= ~Q_ASYNC;
inter(pCBL, NullBuf, NULL, NULL, RowBuf);
return pCBL->CodErr;
}