Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

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

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

Назначение:

Функция предназначена для преобразования списка значений элемента (поля, группы или подстроки) в список записей, которые имеют такие значения.

В результате выполнения операции будут отобраны записи, в которых заданный ключ принимает одно из значений заданного списка.

Для смены номера элемента в списке значений или для переноса таких списков из других таблиц используйте функцию htTransferToTable() и htTransferToPhoto().

Прототип:

LPSAB HTAPI htRecordsByKey(
	LPSAB 	fpDst, 	/* Для приема результата */
	LPSAB 	fpList 	/* Адрес БДС, содержащего список значений */
);

Параметры

fpDst
определяет адрес БДС, предназначенного для хранения множества записей, найденный в результате поиска
fpList
должен адресовать БДС, содержащий список значений какого-либо элемента записи

Результат:

адрес БДС, заданного в качестве первого параметра при успешном завершении
NULL код ошибки в поле fpDst->nRetCode

Пример.

Найти людей, фамилия которых повторяется не менее 3-х раз.

typedef struct tagREC { /* Структура записи таблицы */
	char name[10];
	char sex;
	int depart;
} REC;
long gZero = 0L;
SAB sList;
SAB sRecs;
THANDLE hTable;
 . . .
/* Список всех людей на данный момент */
if( !htSearch( NULL, &sRecs, hTable, 0, GREAT, &gZero, NULL ) )
	/* Обработка ошибок */
 . . .
/* Получить список значений ключа с заданным числом повторов */
if( !htValuesByCount( &sList, 1, &sRecs, 3L, MAX_REC_NUM ) )
	/* Обработка ошибок */
htClearResults( &sRecs );
 . . .
/* Получить записи по списку значений ключа */
if( !htRecordsByKey( &sRecs, &sList ) )
	/* Обработка ошибок */
 . . .