Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

SQLSelect() 函数

  • Last UpdatedSep 24, 2024
  • 1 minute read

SQLSelect() 函数从表中检索记录。包含 SQLSelect() 函数的脚本处理完毕之后<1>,</1>检索到的记录放入内存中的临时<2>“</2>结果表<3>”。</3> 这些记录可以使用 SQLFirst()、SQLLast()、SQLNext() 以及 SQLPrev() 函数进行浏览。

重要事项:在包含 SQLSelect() 函数的脚本结束之后,务必调用 SQLEnd() 函数以释放结果表占用的内存。

类别

SQL

语法

[ResultCode=]SQLSelect(ConnectionID,TableName, BindList,WhereExpr,OrderByExpression);

参数

ConnectionID

内存整型标记的名称,用于存放 SQLConnect() 函数指定给每个数据库连接的编号 (ID)。

TableName

要访问的数据库表的名称。

BindList

定义所使用的 InTouch 标记以及这些标记关联的数据库列。

WhereExpr

为表中的任一行定义的可以为真或为假的条件。SQLSelect() 函数仅从 WhereExpr 条件为真的那些行中提取数据。表达式必须采用以下格式:

ColumnName comparison_operator expression。

注意:如果使用字符表达式进行比较,则表达式必须使用英文单引号括起来。

下例选择 name 列包含 EmployeeID 值的所有行:

name='EmployeeID'

下例选择包含部件号 100 到 199 的所有行:

partno>=100 and partno<200

下例选择 temperature 列包含的值大于 350 的所有行:

temperature>350

WhereExpr - 内存消息标记

OrderByExpr - 内存消息标记

Speed_Input - 内存实型 - 用户输入模拟

Serial_Input - 内存消息 - 用户输入字符串

模拟示例

WhereExpr = "Speed = " + text
(Speed_Input,"#.##");

Speed_Input 是数字,因此必须转换为文本才能与 WhereExpr 字符串串联。

字符串示例

WhereExpr = "Ser_No = ‘" +
Serial_input + "’";

Serial_Input 是字符串,因此必须用英文单引号括住其值,例如:WhereExpr = "Ser_No='125gh'";

使用 like 语句的字符串示例

WhereExpr = "Ser_No like ‘-’"

使用 Like 比较运算符时,可以将 % 字符用作通配符。

使用布尔 AND 运算符的字符串与模拟示例

WhereExpr = "Ser_No = ‘" + Serial_input + "’" + " and " + "Speed = " + text(Speed_Input,"#.##");OrderByExpr = "";

如果顺序无关紧要,请使用如上所示的空字符串。

使用 WhereExpr 标记的 SQLSelect

ResultCode = SQLSelect(Connect_Id,TableName,
BindList,

WhereExpr,OrderByExpr);

Error_msg = SQLErrorMsg( ResultCode );

内置 WhereExpr 的 SQLSelect 函数

ResultCode = SQLSelect(Connect_Id,TableName,
BindList,

"Ser_No = ‘" + Serial_input + "’", OrderByExpr);

Error_msg = SQLErrorMsg( ResultCode );

OrderByExpr

定义表列中数据的排序方向。只有列名可用于排序,并且表达式必须采用以下格式:

ColumnName [ASC|DESC]

下例按照 manager 列中数据的升序对表进行排序:

"manager ASC"

您也可以按多个列进行排序,此时表达式采用以下格式:

ColumnName [ASC|DESC],

ColumnName [ASC|DESC]

下例按 temperature 列的升序与 time 列的降序给所选的表排序:

"temperature ASC,time DESC"

示例

下面的语句使用绑定列表 List1 从 BATCH 表中选择列名类型包含 cookie 这个值的记录。它将按 amount 列的升序与 sugar 列的降序来显示信息:

ResultCode=SQLSelect(ConnectionID,"BATCH", "List1","type='cookie'","amount ASC,sugar DESC");

下面的语句未指定 WhereExpr 与 OrderByExpr 的值,因此会选择数据库中的所有数据:

ResultCode=SQLSelect(ConnectionID,"BATCH", "List1", "","");

另请参阅

SQLFirst()、SQLConnect()、SQLLast()、SQLNext()、SQLPrev()、SQLEnd()

In This Topic