Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаборатор access.doc
Скачиваний:
39
Добавлен:
02.02.2015
Размер:
32.54 Mб
Скачать

2.7. Запросы, использующие таблицы удаленной бд.

Для определения источника данных базовых таблиц запроса используется предложение IN. Источником может служить другая база данных MS ACCESS, файлы dBASE, FoxPro, Paradox, база Btrieve, или любая другая база, поддерживающая ODBS. Это предложение является расширением в ACCESS, и в стандартном SQL отсутствует.

Синтаксис:

IN<"имя_источника_базы_данных">

<[строка_подключения_источника]>

<строка_подключения_источника> вводится вместе с квадратными скобками. Для базы MS ACCESS вводится только параметр "имя_источника_базы_дан-ных". Форматы вводимых данных представлены в

Приложение 3

Предложение IN применяется ко всем таблицам, указанным в предложении FROM и в подчиненных запросах. В запросе можно ссылаться только на одну внешнюю БД. Если необходимо обращение к нескольким БД и файлам, то они присоединяются как таблицы (см ЛР N3), и используются уже как присоединенные.

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

Если опустить UID и PWD, а сервер данных их требует, то ACCESS выводит окно регистрации пользователя.

Для баз dBASE, FoxPro, Paradox и Brieve можно вместо <Имени_ба-зы_данных_источника> ввести пустую строку "" и указать путь или имя

Файла с помощью параметра DATABASE в <строке_подклю-чения_источника_данных>.

Создадим запрос, выводящий таблицу "Результаты" из удаленной базы "Fil_1", содержащую список результатов пошедшей сессии, причем результатов, которые получены в течении сессии.

SELECT Результаты.Номер_С, Результаты.Предмет,

Результаты.Оценка_П, Результаты.Оценка_Т, Результаты.Оценка_Л,

Результаты.Дата_сдачи,Результаты.Задолженность

FROM Результаты

IN 'FIL_1.MDB'

WHERE (Результаты.Дата_Сдачи<=[Введите дату отбора] OR Результаты.Задолженность=0)

ORDER BY Результаты.Номер_С;

Сохраним запрос под именем "Результаты прошедшей сессии".

2.8. Запросы объединения инструкций select.

При необходимости создания результирующей таблицы, содержащей строки нескольких инструкций SELECT, применяется операция UNION. Эта возможность не поддерживается QBE, и реализуется только в режиме SQL.

Синтаксис операции UNION:

инструкция_SELECT

UNION [ALL]

инструкция_SELECT

[ORDER BY { имя_столбца [ ASC | DESC ] },...]

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

Не рекомендуется использовать предикат ORDER BY внутри инструкции SELECT, но можно его использовать после последней такой инструкции. В качестве имен столбцов используются имена из первой инструкции SELECT.

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

SELECT Результаты.Номер_С, Результаты.Предмет,

Результаты.Оценка_Т,

Результаты.Оценка_П, Результаты.Оценка_Л,

Результаты.Задолженность, Результаты.Дата_сдачи

FROM Результаты

IN 'FIL_1.MDB'

UNION

SELECT Результаты.Номер_С, Результаты.Предмет,

Результаты.Оценка_Т, Результаты.Оценка_П, Результаты.Оценка_Л,

Результаты.Задолженность,

Результаты.Дата_сдачи

FROM Результаты

ORDER BY Номер_С;

Сохраним запрос под именем "Объединенные результаты".