显示视图设计器来创建 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
指定视图定义。SQLSELECTStatement 必须是一个合法的 SQL SELECT 语句,而且不必用引号括起来。对于本地视图,通过用数据库名和惊叹号 ( ! ) 作为视图或表名的前缀,可以指定数据库(不是当前数据库)中的表和视图。例如,下面的命令创建了 SQL 视图 mysqlview。该视图选择了 customer 数据库的 orders 表中的所有字段:
CREATE SQL VIEW mysqlview AS SELECT * FROM customer!orders
有关 SQL SELECT 语句的其他内容,请参阅 SELECT - SQL。
可通过创建一个参数化视图,而不用为每个记录子集都创建一个单独的视图,来限制视图的范围。参数化视图利用 WHERE 子句,通过提供一个值作参数,把记录限制在那些符合条件的记录上。
例如,可以创建一个 SQL 视图,根据您提供的国家名称下载有关该国的记录。
所提供的参数被当作是 Visual FoxPro 表达式来计算。如果计算失败,Visual FoxPro 提示参数值。例如,假定 Testdata 数据库的 customer
表放在一个远程服务器上,下面的示例创建了一个参数化远程视图,它把视图限制在某个国家的顾客上,国名由参数 ?cCountry 的值提供:
OPEN DATABASE testdata
CREATE SQL VIEW customer_remote_view CONNECTION remote_01 ;
AS SELECT * FROM customer WHERE customer.country = ?cCountry
提示
如果参数是一个表达式,应把参数表达式用圆括号括起来。这样使整个表达式当作是参数的一部分来计算。
有关参数化视图的详细内容,请参阅《开发指南》第八章“创建视图”。
说明
在创建 SQL 视图之前,必须独占地打开数据库,可用包含 EXCLUSIVE 关键字的 OPEN DATABASE 命令独占地打开一个已存在的数据库,或用 CREATE DATABASE 来创建一个新的数据库。