Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

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

htLoadRecords - Загрузка пачки записей в постоянную часть

Назначение:

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

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

После загрузки постоянной части ее следует проиндексировать, иначе работа будет невозможна.

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

ВНИМАНИЕ. Функция удаляет журнал изменений и индексы при их наличии.

ВНИМАНИЕ. Пользовательская функция, вызываемая для формирования пачки записей, НЕ ДОЛЖНА выполнять обращений (поиск и пр.) к заполняемой таблице. Заполняемая таблица еще не оформлена до конца и поэтому не имеет всех необходимых для нормальной работы атрибутов.

Прототип:

long HTAPI htLoadRecords(
	char far	*fpTabName,	/* Имя таблицы */
	char far	*fpReadPswd, 	/* Пароль для доступа на чтение */
	char far	*fpWritePswd,	/* Пароль для доступа на запись */
	long		gLoadLim,	/* Число записей для добавления (верхняя граница) */
	LPAFUNC		fpfAddProc,	/* Пользовательская функция подготовки данных */
	LPEFUNC		fpfErrProc,	/* Пользовательская функция обработки ошибок */
	void far	*fpUser,	/* Доп.параметр пользователя */
	int 		nDenyOut	/* != 0 вывод отвергнутых записей в таблицу */
);

Параметры

 fpTabName
задает имя файла описания таблицы (с указанием полного или частичного пути), расширение задавать не обязательно.
 fpReadPswd
задает строку, используемую в качестве пароля для доступа к таблице на чтение. Если пароль не нужен, можно задать NULL или пустую строку "".
 fpWritePswd
задает строку, используемую в качестве пароля для доступа к таблице на запись. Значащими являются только первые 8 символов. Если пароль не нужен, можно задать NULL или пустую строку "".
 gLoadLim
 Число записей для добавления (максимум)
 fpfAddProc
Пользовательская функция подготовки данных. Имеет тип AFUNC
 fpfErrProc
Пользовательская функция обработки ошибок. Имеет тип EFUNC . Если функция обработки ошибок не задана (ее адрес NULL), используется "внутренняя" функция, прекращающая операцию при первой же ошибке (возвращает ERROR_ABORT).
 fpUser
 Пользовательский параметр для call-back
 nDenyOut
 != 0 вывод отвергнутых записей в таблицу

Прочие параметры имеют то же значение, что и параметры функции htAddRecords. Единственное отличие состоит в том, что отвергнутые записи будут выведены в таблицу с именем PROMLEMi. Таблица PROBLEM будет использоваться для сбора записей в других операциях - отвергнутых при вводе в журнал изменений и/или имеющих дубликаты уникальных ключей.

Отвергнутые записи сохранят за собой значения суррогатного и автоинкрементных ключей. Образуются "дыры" в значениях ключей. Впрочем, функция htAddRecords ведет себя точно также. Записи, имеющие дубликаты уникальных ключей, будут удалены на этапе индексирования.

В качестве кода завершения функция htLoadRecords возвращает длинное целое со знаком. Если это число меньше 0 - его следует интерпретировать как код ошибки. Иначе, код возврата содержит счетчик отвергнутых записей. Если он равен 0, таких записей не найдено.