Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

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

htLoadCoder - Загрузить кодификатор

Назначение:

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

В случае успешного завершения, функция занесет значение обработчика для кодификатора. Это значение будет положительным числом от 1 до 255.

Прототип:

int HTAPI htLoadCoder(
	char far  	*fpTabName,	/* Имя таблицы с данными кодификатора */
	char far  	*fpReadPswd,	/* Пароль на чтение таблицы */
	int       	nOpenMode,	/* Режим ее открытия (если еще не открыта) */
	int far   	*anFieldsNum,	/* Задействованные номера полей таблицы */
	int       	nFieldCnt,	/* Число полей в массиве */
	LPCHANDLE	fpCoder		/* Для приема обработчика кодификатора */
);

Параметры

fpTabName задает имя таблицы, данные которой будут использоваться для кодификатора. Таблица может быть закрыта или уже открыта для других целей. Если таблица закрыта, необходимо задать пароль на ее чтение и режим открытия (например, совместный или монопольный). Если таблица уже открыта к моменту вызова функции, эти параметры не используются
fpReadPswd задает пароль доступа к таблице на чтение. Если таблица не имеет пароля или уже открыта, можно задать пустую строку "" или NULL
nOpenMode задает режим открытия таблицы. Этот параметр нужен во избежание конфликтов в сети. Другие абоненты могут использовать таблицу для своих целей. Если таблица уже открыта, параметр не используется функцией
anFieldsNum задает адрес массива целых, содержащих номера полей таблицы, задействованных в кодификаторе. Первый элемент массива должен содержать номер поля, являющегося ключом кодификатора. Второй и последующие элементы - номера полей, используемых как толкование значений ключа.
nFieldCnt задает размерность массива, адрес которого указан в качестве четвертого параметра. Должен быть не менее двух
fpCoder задает адрес переменной, выделенной для приема значения обработчика кодификатора

Результат:

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

Пример.

Загрузить кодификатор для поля "Пол". Таблица доступна для чтения всем.

typedef struct tagSEX { /* Структура записи таблицы полов */
	char	sex;	 /* Пол (кодированный) */
	char	name[7]; /* Полное наименование пола */
} SEX;
CHANDLE hSex;
int rc;
int anFields[] = { 1, 2 };
 . . .
/* Загрузить кодификатор */
rc = htLoadCoder( "\\table\\sex", NULL, TAB_SHARE, anFields,
		 sizeof(anFields)/sizeof(int), &hSex );
 . . .
/* И выгрузить его */
htPurgeCoder( hSex );
 . . .