IFIX教程之使用VX控件(4)

2018-12-19 22:36

用 SQL 向导建立查询

VisiconX 的“SQL 向导”可快速建立从简单到复杂的 SQL Select 语句。通过使用该向导,您无需了解 SQL Select 语句的语法;向导为您构建语句。

除了快速、方便地建立查询,“SQL 向导”还可以使用查询属性。通过动画查询属性,根据指派查询属性不同的值,改变数据显示。在 iFIX 中“使用 VisiconX”章节的动画查询属性更详细地说明了查询动画。

注意:CIMPLICITY 用户需要使用 CimEdit Basic 脚本来使用查询属性。如需了解详情,请参阅在 CIMPLICITY 中使用查询属性。

使用 SQL 向导, 可以:

? ? ? ? ?

查询一个或多个表。 显示表的列名。

返回唯一值的行,优于返回重复的行。 根据所选条件,过滤某些行。

根据所选列的值,以升序或降序方式排序数据。

输入或粘贴 SQL Select 语句

数据控件 OLE 属性对话框的记录源标签包括了 SQL 命令文本框。可直接在该文本框中输入或从其他应用程序粘贴 SQL 命令。也可以用“SQL 向导”建立查询,并可以在以后重新定义查询。 如果用户了解数据库表和相应的字段名,可直接输入 SQL 语句。也可以在其他应用程序中建立 SQL 查询语句,如 MS Query 程序,然后再粘贴到该文本框中。

联接表

如果联合两个或多个表建立查询,则称为联接表查询。联接表查询必须共享公共列名。例如,Customer 表和 Orders 表都有 Customer ID 列。

通过 SQL 向导,您可以使用最常见的联接操作(即内联接)轻松组合表。内联接只从通用列值匹配的各表中选择记录。例如,下面的 Select 语句通过相同的 CustomerID,连接 Customer 和 Orders 表。返回相同用户 ID 的用户和定单记录。该查询并不返回与定单无关的用户记录或与用户无关的定单信息。

SELECT

Customers.CustomerID, Customers.ContactName, Orders.OrderID, Orders.ShipName

FROM Customers, Orders

WHERE (Customers.CustomerID = Orders.CustomerID) ORDER BY Customers.CustomerID

根据上面的 Select 语句,下图显示了联接 Customers 和 Order 表的查询结果。

内联接查询结果

另一种联接称为外联接(outer join),外联接必须手动输入或粘贴 Select 语句。外联接返回与第二个表中公共列值相匹配的所有第一个表的记录。例如,下面使用外联接 Select 的语句,返回 Order 表中 Customer ID 字段与 Customer 表 Customer ID 相同值的所有 Order 表记录,这个例子显示了与用户信息相关或无关的所有订单记录。

SELECT

Customers.CustomerID, Customers.ContactName, Orders.ShippedDate, Orders.ShipName FROM

(Orders LEFT OUTER JOIN Customers

ON Orders.CustomerID = Customers.CustomerID) ORDER BY Customers.CustomerID

此 Select 语句正好相反;请注意,唯一的区别是 From 语句中表的顺序。如返回两表 Customer ID 字段值相等的所有 Customers 表中的记录,这个例子显示了与定单信息相关或无关的所有用户记录。

SELECT

Customers.CustomerID, Customers.ContactName, Orders.OrderID, Orders.ShipName FROM

(Customers LEFT OUTER JOIN Orders

ON Customers.CustomerID = Orders.CustomerID)

ORDER BY Customers.CustomerID

下图显示了上面 Select 语句的查询结果,注意 PARIS 用户与定单信息无关。

外联接查询结果

使用表创建查询

您可以创建的最简单的查询是返回表中的所有数据;即,表中的所有行和列。对于一个小的表,数据比较容易分类,可以选用这种方式。

使用存储的过程创建查询

在关系型数据库中,存储过程是已编译的代码块。由于存储过程包含条件语句和流控制语句,因此在实际应用中非常有用。存储过程可执行 INSERT,UPDATE,DELETE 和 SELECT 命令。也可以带参数和返回值。参数可以是插入的值或在 Where 子句中使用的值。 过程的执行要远远快于 SQL 命令,原因如下:

? ? ?

执行存储过程只需调用一次。 在数据库中存储过程是已编译了的。

是在服务器上运行存储过程,而不是在客户机上。

VisiconX 使用存储过程访问及读取数据时,创建了一系列查询属性与存储过程的参数相匹配。查询属性列表显示了查询属性与参数的映射关系、参数的数据类型及参数传递信息的方向,如下图所示。

存储过程参数映射

VisiconX 给返回值、输入参数、输出参数指派相应的查询属性,输入/输出参数是在存储过程中定义的。如果 VisiconX 不能确定参数的目的,则在“参数列表”的“方向”中显示未知值(Unknown)。

注意:

? 如果使用存储程序查询 Microsoft Access 或 Oracle 数据库,请参阅排除存储过程引起的故障以了解适用于这些数据库的特殊问题。

? CIMPLICITY 用户需要使用 CimEdit Basic 脚本来使用查询属性。如需了解详情,请参阅在 CIMPLICITY 中使用查询属性。

从存储过程的“参数列表”中可以看出,使用存储过程读取数据,必须动画查询属性。查询属性必须与存储过程的输入参数相匹配。

写数据库

写数据库意味着可以插入或更新所选数据库表中的列数值。可以使用 SQL 向导创建简单的插入或更新语句,或使用数据控件 OLE 属性对话框中的记录源标签手动输入更复杂的语句。 通过使用该向导,您无需了解 SQL Insert 或 Update 语句的语法;向导为您构建语句。

提示:SQL 语句必须符合标准 SQL-92 约定。与 SQL 标准一致,所输入的任何语句不分大小写。

创建插入或更新语句

VisiconX 数据控件可使用 SQL 命令对所选数据库表添加或更新列值。可以使用 SQL 向导创建简单的插入或更新语句,或使用数据控件属性 OLE 对话框中的记录源标签手动输入更复杂的语句。有关手动创建 SQL 语句的信息,参阅输入或粘贴 SQL 语句。

VisiconX SQL 向导可帮助快速创建简单的 SQL Insert 或 Update 语句。通过使用该向导,您无需了解 SQL 语句的语法;向导为您构建语句。 使用 SQL 向导, 可以:

? ? ?

选择要写的一个或多个表。 选择要写的表列。

过滤要更新的行,基于所定义的选择条件。

SQL 向导

“SQL 向导”的“创建行过滤” 对话框用于限制行返回,只返回满足条件的行。如果熟悉 SQL 语句,就知道 Where 子句是用于行过滤的。例如:

Milktype equal to 3

只返回 MilkType 列值等于 3 的行。此字符串:

Milktype equal to 3 and BatchID equal to 1

只返回 MilkType 为值 3 且 BatchID 为 1 的行。

在上一示例中,行过滤器是静态的;即语句中使用的值是硬编码的。在大多数情况下,最好创建更为灵活的语句;即您可以在运行时更改其值和检索更新的结果的语句。 使用查询属性,在运行时建立查询子句,如下面例子之中的查询属性:

Milktype equal to {ts `QP1'}

在该查询语句中,动画了“数据控件”的 QP1 属性,并在运行时赋予相应值。“数据控件”查询数据供应者并更新画面中的显示。

有关建立查询子句过滤行的详细信息,请参阅创建行过滤器。

如果正在使用 iFIX,请参阅动画查询属性中关于实现查询属性动画的详情。


IFIX教程之使用VX控件(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:酶标仪期间核查记录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: