Получение столбца ответа в буфер – LINTER_GetData

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

 
L_LONG LINTER_GetData(
 L_WORD CursorID,     /* идентификатор курсора */
 L_SWORD ColumnNumber,/* номер столбца в ответе */
 void *OutBuffer,     /* буфер для приема поля */
 L_LONG OutBufLen,    /* длина OutBuffer в байтах */
 L_SWORD OutType,     /* выходной тип поля ответа */
 L_SWORD OutPrec,     /* выходная точность поля (для tDecimal) */
 L_SWORD OutScale,    /* выходной масштаб поля (для tDecimal) */
 L_LONG *RealLength); /* реальная длина поля */

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

Параметр Описание
CursorID  Идентификатор курсора
ColumnNumber  Номер столбца ответа
OutBuffer  Буфер для приема поля
OutBufLen  Длина буфера OutBuffer
OutType  Требуемый тип ответа
OutPrec  Точность (для tDecimal)
OutScale  Масштаб (для tDecimal)

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

Параметр Описание
OutBuffer  Выходной буфер ответа
RealLength  Реальная длина ответа

Описание

Помещает в OutBuffer значение столбца ответа, а в RealLength действительный размер ответа. Для получения значений переменной длины размер буфера ответа должен быть увеличен на 2 байта (для указания реальной длины значения).

Пример

long lError;
short nCursID;
t_ParamDesc pdAnsDesc;
void *vBuff;
...
if(lErr=LINTER_GetCursorOption(nCrsID, cAnswerDesc, 1, (void*)&pdAnsDesc, NULL))
	processing_error(lErr, 0, nCrsID, 0, "LINTER_GetCursorOption");
vBuff = calloc(pdAnsDesc.Length, sizeof(char));
...
if(lErr=LINTER_GetData(nCrsID, 1, vBuff, pdAnsDesc.Length, pdAnsDesc.Type, 0, 0, NULL))
	processing_error(lErr, 0, nCrsID, 0, "LINTER_GetData");