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

AVEVA™ InTouch HMI

在 InTouch 中执行常见的 SQL 操作

  • Last UpdatedSep 24, 2024
  • 2 minute read

InTouch 使用 SQL Access 函数与数据库中存储的信息进行交互。通过使用这些 SQL Access 函数,可以编写脚本来选择、修改、插入或删除数据库记录。

SQL 动作是同步型的。从 InTouch 应用程序中运行数据库 QuickScript 时,只有在函数请求的数据库操作完成之后,控制权才返回给 InTouch。

SQL Access 函数遵循一些标点符号标准,用以描述与函数关联的参数的类型。使用英文双引号括起的脚本字符串来输入参数 ("Arg1") 时,会完全按照原样使用该字符串。如果未使用英文双引号,则将参数值视位标记名,同时将标记的当前值与该参数关联起来。

大多数 SQL 函数都会返回结果码。如果结果码不为零,则函数失败,此时应该采取其它措施。结果码可以由 SQLErrorMsg() 函数使用。

通过使用 InTouch QuickScript 编辑器,可以将 SQL 函数插入到 QuickScript 中。将 SQL 函数插入到脚本中的一般操作程序包括以下步骤:

将 SQL 函数添加到脚本中

  1. 启动 InTouch WindowMaker。

  2. 使用 QuickScript 编辑器打开 QuickScript。

  3. 将光标放到脚本中要插入 SQL 函数的位置。

  4. 函数区域中,单击附件以显示选择函数对话框。

  5. 选择要插入到 QuickScript 中的 SQL 函数。此时该脚本更新并显示所插入的 SQL 函数。

与 SQL Access 函数关联的参数包括:

  • BindList

    对应于 SQL.DEF 文件中定义的“绑定列表”名。

  • ConnectionID

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

  • ConnectString

    ConnectString 确定数据库系统以及任何附加的登录信息。它按照以下格式输入:

    "DSN=data source name[;attribute=value

    [;attribute=value]...]"

    Microsoft SQL Server 连接字符串

    • Microsoft OLE DB Provider for SQL Server(建议使用)。

      "Provider=SQLOLEDB.1;User ID=sa; Password=;Initial Catalog=MyDB;Data Source=MyServer;"

      OLE DB Provider for SQL Server 是 sqloledb。

    • Microsoft OLE DB Provider for SQL Server(建议使用)

      "Provider=SQLOLEDB.1;uid=sa;pwd=;Database=MyDB"

    • Microsoft OLE DB Provider for ODBC(使用缺省供应器 MSDASQL for SQL Server):

      "DSN=Pubs;UID=sa;PWD=;"

    • Microsoft OLE DB Provider for ODBC(使用缺省供应器 MSDASQL for SQL Server):

      "Data Source=Pubs;User ID=sa;Password=;"

      Oracle 连接字符串

    • Microsoft OLE DB Provider for Oracle(建议使用)

      "Provider=MSDAORA;Data Source=ServerName;User ID=UserIDStr; Password=PasswordStr;"

      Microsoft Access 连接字符串

      Microsoft OLE DB Provider for Microsoft Jet(建议使用)。Microsoft.Jet.OLEDB.4.0 是本机 OLE DB Provider for Microsoft Jet(Microsoft Access Database 引擎)。

      "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\DBName.mdb;User ID=UserIDStr;Password=PasswordStr;"

      Microsoft OLE DB Provider for ODBC(使用缺省供应器 MSDASQL for MS Access):

      "Provider=MSDASQL;DSN=DSNStr;UID=UserName; PWD=PasswordStr;"

  • ErrorMsg

    包含对错误的文本描述的消息变量。

  • FileName

    包含信息的文件的名称。

  • MaxLen

    与参数关联的列的最大长度。此参数确定数据是可变字符型还是长可变字符型。如果 MaxLen 小于或等于数据库允许的最大字符串长度,则数据是可变字符型。如果大于该数值,则数据是长可变字符型。

  • OrderByExpression

    定义各个列以及是按升序还是降序进行排列。只有列名可用于排序。表达式必须采用以下格式:

    ColumnName [ASC|DESC]

    要按列名的升序方式给所选的表排序:

    "manager ASC"

    要按多个列进行排序,则表达式的格式为:

    ColumnName [ASC|DESC],

    ColumnName [ASC|DESC]

    要按某个列名(如 temperature)的升序、另一个列名(如 time)的降序给所选的表排序:

    "temperature ASC, time DESC"

  • ParameterNumber

    语句中的实际参数编号。

  • ParameterType

    指定的参数的数据类型。有效值是:

    类型

    描述

    Char

    用空格填充的固定长度字符串

    Var Char

    可变长度字符串

    十进制

    BCD 数

    整型

    4 字节带符号整数

    小整数

    2 字节带符号整数

    浮点

    4 字节的浮点数

    双精度浮点数

    8 字节的浮点数

    日期时间

    8 字节日期时间值

    日期

    4 字节日期时间值

    时间

    4 字节日期时间值

    无类型

    无数据类型

  • ParameterValue

    要设置的实际值。

  • 精度

    是十进制值的精度、字符的最大个数,或日期时间值的字节长度。

  • RecordNumber

    要检索的实际记录号。

  • ResultCode

    大多数 SQL 函数都会返回的整型变量。如果函数执行成功,则返回的 ResultCode 是零 (0);如果失败,则返回负整数。

  • 刻度

    是十进制值的小数位数。仅当适用于要设置为空的参数时,才需要使用此值。

  • StatementID

    使用高级功能语句时,SQL 返回供内部使用的 StatementID。

  • SQLStatement

    实际的语句,例如:

    ResultCode=SQLSetStatement(ConnectionID, "Select LotNo, LotName from LotInfo");

  • TableName

    TableName 参数包含要在数据库中访问或创建的表的名称。

  • TemplateName

    TemplateName 参数是 SQL.DEF 文件中定义表的模板的名称。

  • WhereExpr

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

    ColumnName comparison_operator expression

    注意:如果列的数据类型是字符,则表达式必须使用英文单引号括起来。

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

    Name='EmployeeID'

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

    partno>=100 and partno<200

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

    temperature>350