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

Другие функции для создания таблиц - функция dsexec

Кроме create table для создания таблицы также могут быть использованы следующие функции:

  • dsexec;

  • results table;

  • copytable;

  • htCreateTable;

  • imptitle.

Функция dsexec выполняет запрос во внешнем источнике данных и из полученных результатов формирует таблицу. Более подробная информация о работе с внешними источниками данных находится в разделе «Операторы для работы с внешними источниками данных».

Формат:

rc = dsexec ( datasrc, query [ , table ] ) ;

Аргументы:

Аргумент

Тип

Значение

datasrc

character

Задает имя внешнего источника данных.

query

character

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

table

character

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

Результат:

Тип

Значение

integer

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

Приведем пример. Перенести данные из таблицы EMP в источнике dsoracle и построить таблицу LOCALEMP.

dsexec('dsoracle', 'select * from EMP', 'LOCALEMP');

Другие функции для создания таблиц - функция copytable

Функция copytable предназначена для создания копии таблицы. Копируются описание таблицы (включая пароли доступа и распределение ключей) и данные (существующие на момент копирования). Таблица-копия может располагаться в другом каталоге или на другом устройстве. Если таблица с таким именем существует, она будет пересоздана. Исходная таблица должна быть закрыта. Имя получаемой таблицы не должно совпадать с именем исходной.

Формат:

nCode = copytable( sTo, sFrom );

Аргументы:

Аргумент

Тип

Значение

sTo

character

Куда копируем. Таблица может быть как постоянной, так и временной. Чтобы задать создание глобальной временной таблицы, перед именем таблицы должен идти один символ *. Чтобы задать создание локальной временной таблицы, перед именем таблицы должны идти два символа **.

sFrom

character

Аргумент задает имя таблицы, которую надо скопировать.

Приведем пример:

close AUTHOR; copytable('AUTHOR_1', 'AUTHOR'); select * from AUTHOR_1;

Другие функции для создания таблиц - функция htCreateTable

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

Формат:

nErr = htCreateTable( sDst, sLike );

Аргументы:

Аргумент

Тип

Значение

sDst

character

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

sLike

character

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

Результат:

Тип

Значение

integer

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

Приведем пример:

var @nErrCode = htCreateTable('BOOK_1', 'BOOK'); select   @nErrCode as ERRCODE from   TABLES;