Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

Документация
Функция htGetResultsItem

htGetResultsItem - Получить элемент результата поиска

Назначение:

Функция предназначения для работы с результатами, содержащими обработчики записей (RES_SORT, RES_JOIN/RES_SORTJOIN). Функция носит вспомогательный характер и позволяет получить элемент результата напрямую, избегая доступа через htOpenResults с флагом ROPEN_HNDL. Полученный элемент результата можно рассматривать как шаблон при формировании нового значения для функций htReplaceResultsItem и htIncludeResultsItem.

Прототип:

int HTAPI htGetResultsItem(
  LPSAB		fpSrc,		/* Адрес исходного БДС */
  long		gItemNo, 	/* Порядковый номер элемента (от 0) */
  LPRHANDLE	fpItem) 	/* Для чтения элемента результата */
);

Параметры

fpSrc
задает адрес БДС, содержащего результаты поиска. Доступ к результатам должен быть открыт
gItemNo
задает порядковый номер получаемого элемента результата (отсчет от 0).
fpItem
задает адрес области памяти для приема элемента результата. Размер элемента определяется типом результата. Для сортированных записей элемент - обработчик записей. Для результатов слияния - вектор из обработчиков записей. Размерность вектора равна

числу таблиц в слиянии.

Результат

0 успех
отрицательное число код ошибки

Пример.

Построить "обобщенную" таблицу для больных мужчин из Казахстана. Подменить название республики в третьей из виртуальных записей на Россия. Проверка кодов опущена для простоты.

typedef struct tagREPUBLIC { /* Структура записи таблицы республик */
	char code; /* Поле-связка */
	char name[30];
} REPUBLIC;
typedef struct tagCLIENT { /* Структура записи таблицы больных */
	char name[15];
	char address[50];
	char sex;
	char code; /* Поле-связка */
} CLIENT;
SAB sCode;
SAB sMen;
SAB sTmp;
THANDLE hClient;
THANDLE hRepub;
RHANDLE ahRecs[2];
 . . .
/* Код республики по названию */
htKeySearch( NULL, &sCode, hRepub, 2, EQUAL, "КАЗАХСТАН", NULL );
/* Мужчины-больные */
htKeySearch( NULL, &sMen, hClient, 3, EQUAL, "M", NULL );
/* Больные мужчины из Казахстана */
htTablesJoin( &sTmp, &sCode, 1, EQUAL, &sMen, 4, NULL, 0 );
/* Открыть доступ к результатам */
htOpenResulst( &sTmp, ROPEN_READ, NULL, 0 );
/* Получить третий элемент слияния */
htGetResultsItem( &sTmp, 2L, ahRecs );
/* Найти обработчик для требуемого названия республики */
/* Предполагается, что таблица республик вторая в слиянии */
htRecordByUniq( NULL, hRepub, 2, "РОССИЯ", ahResc+1);
/* Подменить элемент слияния */
htReplaceResultsItem( &sTmp, 2L, ahRecs );
 . . .