Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

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

htDeleteRecords - Удаление подмножества записей из таблицы

Назначение:

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

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

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

Реального изменения постоянной части не происходит. Записи метятся как удаленные в журнале изменений. Последующие операции поиска не "увидят" удаленных записей.

Прототип:

 long HTAPI htDeleteRecords(
	LPSAB fpSrc /* Адрес БДС, содержащего подмножество записей */
 );

Параметры

fpSrc
Адрес БДС, содержащего подмножество записей

Результат:

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

Пример.

Удалить записи с номерами меньше 1000.

int rc;
long num = 1000L;
SAB sab;
THANDLE hTable;
 . . .
 /* Ищем записи с номерами меньше заданного */
if( htSearch( NULL, &sab, hTable, 0, LESS, &num, NULL ) )
{
	/* Удаляем все, что нашли */
	rc = htDeleteRecords( &sab );
	if( rc < 0 )
		/* Обработка ошибок */
	/* Записи удалены, а результаты поиска - нет */
	htClearResults( &sab );
}