Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Использование группы атрибутов в качестве индекса

В качестве индекса также может выступать группа атрибутов, создать которую можно при помощи функции addgroup или addsubstr.

Функция addgroup добавляет группу (в терминах HyTech) к существующей таблице. Группой может быть несколько полей таблицы, расположенных в записи рядом.

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

Формат:

nCode = addgroup( sTableName, sGroupName, nFieldStart, nFieldCnt [ , nKey ] );

Аргументы:

Аргумент

Тип

Значение

sTableName

character

Имя таблицы. Таблица должна быть закрыта всеми пользователями.

sGroupName

character

Имя добавляемой группы. Не должно совпадать с уже существующими полями, группами или подстроками в таблице и не должно иметь имя recno.

nFieldStart

integer

Номер поля, с которого начинается группа. Поля в таблице перенумерованы, начиная с 1.

nFieldCnt

integer

Сколько полей должно содержаться в группе.

nKey

integer

Тип ключа. Если параметр не указан, то создается обычный ключ

Допустимые значения аргумента nKey:

nKey

Значение

1

Обычный ключ

2

Уникальный ключ

Результат:

Тип

Значение

integer

Код ошибки HyTech или 0, если операция завершилась успешно.

Пример:

drop table RDBOOK; create table RDBOOK (   ID        dword surrogate,   ID_BOOK   dword  not null,   ID_READER dword  not null,   COMMENT   char(100) ); close table RDBOOK; var @rc = 0; @rc = addgroup('RDBOOK', 'bookreader', 2, 2, 2); if (@rc <> 0) {   select 'Ошибка при добавлении группы: ' + @rc as RESULT from TABLES; } else {   select 'Группа добавлена: ' + @rc as RESULT from TABLES; }

Добавление подстроки в качестве индекса таблицы

Функция addsubstr добавляет подстроку (в терминах HyTech) к существующей таблице. Подстрока представляет собой дополнительный индекс, по которому можно производить поиск.

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

Формат:

nCode = addsubstr( sTableName, sGroupName, nFieldStart,                    nOffset, nLen [ , nKey ] );

Аргументы:

Аргумент

Тип

Значение

sTableName

character

Имя таблицы. Таблица должна быть закрыта всеми пользователями.

sGroupName

character

Имя добавляемой подстроки. Не должно совпадать с уже существующими полями, группами или подстроками в таблице и не должно иметь имя recno.

nFieldStart

integer

Номер поля, в котором располагается подстрока. Поля в таблице перенумерованы, начиная с 1.

nOffset

integer

Смещение в поле, где начинается подстрока.

nLen

integer

Длина подстроки в байтах.

nKey

integer

Тип ключа. Если параметр не указан, то создается обычный ключ.

Допустимые значения аргумента nKey

nKey

Значение

1

Обычный ключ.

2

Уникальный ключ.

Результат:

Тип

Значение

integer

Код ошибки HyTech или 0, если успех.

Пример:

drop table READER; create table READER (   ID        dword surrogate,   BOOKCOUNT byte,   DEPOSIT   currency,   BIRTHDATE date,   LNAME     char(50) not null,   FNAME     char(50) not null,   MNAME     char(50) not null,   RNUM      char(10) not null,   WORKPLACE char(100) ); close table READER; var @rc = 0; @rc = addsubstr('READER', 'NAME2', 6, 5, 10, 1); if (@rc <> 0) {   select 'Ошибка при создании подстроки: ' + @rc as RESULT from TABLES; } else {   select 'Подстрока создана: ' + @rc as RESULT from TABLES; }