Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

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

htRecordAdd - Добавление записи в таблицу

Назначение:

Функция позволяет добавить запись в таблицу. Добавление невозможно, если таблица открыта в режиме "только на чтение" или захвачена другими пользователями сети в монопольном режиме. Тело добавляемой записи должно содержать значения для всех полей записи в том виде, как они описаны. Символьные поля записи будут "нормализованы" СУБД перед добавлением (дополнены пробелами до заданной длины). Каждая запись перед добавлением проверяется на допустимость значений, а также на уникальность первичных ключей. В случае удачного прохождения проверок запись добавляется в журнал изменений. Если в записи имеется суррогатный ключ, его новое значение будет занесено в тело записи перед операцией добавления. Автоинкрементные ключи также получат очередные значения. Присвоенные значения суррогатного и автоинкрементных ключей можно получить из тела записи после завершения операции добавления.

Прототип:

long HTAPI htRecordAdd(
  THANDLE		hTable, 	/* Обработчик для таблицы */
  void far		*fpRecord	/* Тело записи */
);

Параметры

hTable Обработчик для таблицы
fpRecord Тело записи

Результат

положительное число физический номер для записи
отрицательное число код ошибки

Пример 1.

Добавить запись в таблицу.

typedef struct tagREC { /* Структура записи таблицы */
	char	name[10];
	char	sex;
	int	fee;
} REC;
REC body = { "JONSON", 'M', 10000 };
long rc;
THANDLE hTable;
. . .
rc = htRecordAdd( hTable, &body );
if( rc < 0L )
	/* Обработка ошибок */
else
	/* Запись получила номер rc */

Пример 2.

Добавить запись, имеющую суррогатный ключ.

typedef struct tagRECS { /* Структура записи таблицы */
	char		name[10];
	unsigned long	surr; /* Это поле объявлено суррогатным ключом */
	char		sex;
	int		fee;
} RECS;
RECS body = {
	"JONSON",	/* Поле будет дополнено пробелами до нужно длины */
	0L, 		/* Значение поля будет переписано СУБД */
	'M', 10000 };
long rc;
THANDLE hTable;
. . .
rc = htRecordAdd( hTable, &body );
if( rc < 0L )
	/* Обработка ошибок */
else {
	/* Запись получила номер rc */
	/* Значение суррог.ключа body.surr */
}