Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

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

htTableOpen - Открыть доступ к таблице

Назначение:

Функция служит для открытия доступа к существующей таблице. Если доступ к данной таблице уже открыт в Вашей задаче, операция завершится с ошибкой.

При выполнении операции СУБД присваивает таблице некий номер - "обработчик". Этот номер будет идентифицировать таблицу при последующих операциях поиска или обработки данных. При открытии таблицы нужно указать флаги доступа, задающие режим использования таблицы (монопольный или совместный), возможность модификации данных и пр (TAB_??? ).

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

Если доступ к таблице был закрыт паролем при ее создании, требуется указать пароли доступа. Незнание пароля доступа на чтение не позволит открыть таблицу вообще, а пароля доступа на запись - не позволить модифицировать данные.

Прототип:

int HTAPI htTableOpen(
  char far 	*fpTableName,	/* Имя таблицы (можно без расширения) */
  char far 	*fpReadPswd,	/* Пароль доступа на чтение */
  char far 	*fpWritePswd,	/* Пароль доступа на запись */
  int      	nOpenMode,	/* Режим открытия (константы TAB_???? ) */
  LPTHANDLE	fpHandle     	/* Для приема обработчика таблицы */
);

Аргументы:

fpTableName
задает имя файла описания таблицы (с указанием полного или частичного пути), расширение задавать не обязательно.
fpReadPswd
задает строку, используемую в качестве пароля для доступа к таблице на чтение. Если пароль не нужен, можно задать NULL или пустую строку "".
fpWritePswd
задает строку, используемую в качестве пароля для доступа к таблице на запись. Значащими являются только первые 8 символов. Если пароль не нужен, можно задать NULL или пустую строку "".
nOpenMode
задает флаги открытия (TAB_??? )
fpHandle
задает адрес переменной для занесения обработчика открываемой таблицы.

Результат:

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

Пример.

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

THANDLE	hOld;
int    	rc;
rc = htTableOpen( "\\work\\staff", NULL, NULL,
	 TAB_SHARE | TAB_FLUSH, &hOld );
if( rc < 0 )
	/* Обработка ошибок */