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

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

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

Формат:

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

Аргументы:

Аргумент

Тип

Значение

datasrc

character

Задает имя внешнего источника данных. Источник данных с указанным именем должен быть создан оператором create datasource.

query

character

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

table

character

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

Результат:

Тип

Значение

integer

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

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

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

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

Из-за медленного доступа к источнику данных, выполнение нескольких последовательных dsexec может занять много времени. Чтобы выполнить все нужные запросы за один вызов, предусмотрен режим пакетного выполнения запросов.

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

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

Значение параметра BreakBatchOnError устанавливается функцией htParameter.

Формат:

rc = htDsExec( datasrc, arg1 [, arg2]... );

Аргументы:

Аргумент

Тип

Значение

datasrc

character

Задает имя внешнего источника данных. Источник данных с указанным именем должен быть создан оператором create datasource.

arg

character

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

Результат:

Тип

Значение

integer

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

Пример:

htParameter('BreakBatchOnError', 1);

var @e = htDsExec(

                  'ht5004',

                  'create global temporary table B(f1 int);',

                  'insert into B values (1);',

                  'insert into B values (10);',

                  'select * from B;',

                  '>**a1',

                  'insert into B values (20)',

                  'select * from B;',

                  '>**a2'

                 );