Команда CREATE SQL VIEW

Отображает конструктор представлений, давая возможность создать представление SQL

Синтаксис:

CREATE SQL VIEW [ViewName ] [REMOTE]
	[CONNECTION ConnectionName [SHARE]
	| CONNECTION DataSourceName]
	[AS SQLSELECTStatement]

Параметры:
ViewName
Задает имя представления, которое предстоит создать.
REMOTE
Указывает, что создается удаленное представление, использующее удаленные таблицы. Если опустить REMOTE, можно создать представление с помощью локальных таблиц.
CONNECTION ConnectionName [SHARE]
Задает именованное соединение, которое следует установить после открытия представления. Если указано предложение SHARE, Visual FoxPro задействует совместно используемое соединение, если таковое есть в наличии. Если же доступных совместно используемых соединений нет, то после открытия представления будет создано уникальное соединение, которым не смогут пользоваться другие представления.
CONNECTION DataSourceName
Задает уже существующий источник данных, с которым устанавливается соединение.
AS SQLSELECTStatement
Задает определение представления. В качестве SQLSELECT Statement должен использоваться допустимый оператор SQL SELECT, который не следует заключать в кавычки. Если описывается локальное представление, можно задавать представления и таблицы баз данных, отличных от текущей, предваряя имя представления или таблицы именем базы данных с восклицательным знаком (!). Например, приведенная ниже команда создает представление SQL с именем mysqlview, которое выбирает все поля таблицы orders, входящей в базу данных customer:

CREATE SQL VIEW mysqlview AS SELECT * FROM customer!orders

Подробнее об операторах SQL SELECT см. тему SELECT - SQL.
Вы можете ограничить область действия представления, не создавая отдельного представления для каждого подмножества записей: для этого нужно создать параметризованное представление. В параметризованном представлении используется предложение WHERE, которое ограничивает множество загружаемых записей только нужными записями, используя значение, передаваемое в качестве параметра.
Например, вы можете создать представление SQL, которое позволит загружать записи, относящиеся к любой конкретной стране; для этого достаточно будет при использовании представления задать название страны.
Предоставляемый параметр вычисляется как выражение Visual FoxPro. Если вычисление провести не удается, Visual FoxPro предлагает ввести значение параметра. Например, если таблица customer из базы данных Testdata находится на удаленном сервере, то следующий пример создаст удаленное параметризованное представление, ограниченное только клиентами из тех стран, названия которых соответствуют значению, предложенному для параметра ?cCountry:

OPEN DATABASE testdata
CREATE SQL VIEW customer_remote_view CONNECTION remote_01 ;
	AS SELECT * FROM customer WHERE customer.country = ?cCountry

Совет:
Если параметр является выражением, поставьте его в скобки. В этом случае все выражение целиком будет вычисляться в составе параметра.
Подробнее о параметризованных представлениях см. главу 8 "Создание многотабличных представлений" Руководства разработчика.

Комментарии:
Прежде чем вы сможете создать представление SQL, необходимо открыть базу данных в монопольном режиме. Используйте команду OPEN DATABASE с ключевым словом EXCLUSIVE для открытия существующей базы данных в монопольном режиме или команду CREATE DATABASE для создания новой базы данных.

Пример:

* В следующем примере открывается база данных testdata. Команда
* CREATE SQL VIEW используется для создания локального представления
* SQL с именем myview; оно создается на основе конструкции SELECT - SQL,
* отбирающей записи из таблицы customer. Отображается конструктор
* представлений, в котором вы можете модифицировать данное
* представление SQL. После того закрытия конструктора представлений
* представление SQL будет уничтожено. 

CLOSE DATABASES
OPEN DATABASE (SYS(2004) + 'samples\data\testdata')

CREATE SQL VIEW myview AS SELECT * FROM customer
MODIFY VIEW myview
DELETE VIEW myview

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 08.12.2002