SQL SELECT读取表值

应用

SQL SELECT读取表的一个值并将结果保存在定义的Q参数中。

要求

  • 密码号555343
  • 表存在
  • 相应的表名
  • 表名和表列名必须用字母开头且不能包括任何算数操作符(例如,+)。由于SQL命令的原因,输入或读取数据时,这些字符可导致问题。

功能说明

黑色箭头和相应的语句显示SQL SELECT的内部操作

SQL SELECT不导致事物,也不导致表列与Q参数的绑定。数控系统不考虑与指定表列的任何绑定。数控系统只将读取值复制到为结果指定的参数中。

输入

11 SQL SELECT Q5 "SELECT Mess_X FROM Tab_Example WHERE Position_NR==3"

; 将“Tab_Example”表的“Position_No”表列值保存在Q5

NC数控功能包括以下指令元素:

指令元素

含义

SQL BIND(SQL绑定)

SELECT SQL指令的指令符

Q/QL/QRQSQ REF

数控系统保存结果的变量

" "QS

SQL语句或QS参数及定义含:

  • SELECT:待传递数据的表列
  • FROM:同义词或表的绝对路径(单引号中路径)
  • WHERE:列标识,条件和比较值(单引号中:后的Q参数)

注意

  • 用SQL语句SQL EXECUTESELECT语句选择多个数据或多个表列。
  • 对于SQL命令内的指令,同样可用单个和组合的QS参数。
  • 字母数字值的串联连接

  • 如果在附加状态栏(QPARA选项卡)检查QS参数的内容,只显示前30个字符,因此,内容不完整。
  • QPARA选项卡

举例

以下NC数控程序的结果相同。

0 BEGIN PGM SQL_READ_WMAT MM

1 SQL Q1800 "CREATE SYNONYM my_table FOR 'TNC:\table\WMAT.TAB'"

; 创建同义字

2 SQL BIND QS1800 "my_table.WMAT"

; 绑定QS参数

3 SQL QL1 "SELECT WMAT FROM my_table WHERE NR==3"

; 定义搜索

* - ...

* - ...

3 SQL SELECT QS1800 "SELECT WMAT FROM my_table WHERE NR==3"

; 读取和保存值

* - ...

* - ...

3 DECLARE STRING QS1 = "SELECT "

4 DECLARE STRING QS2 = "WMAT "

5 DECLARE STRING QS3 = "FROM "

6 DECLARE STRING QS4 = "my_table "

7 DECLARE STRING QS5 = "WHERE "

8 DECLARE STRING QS6 = "NR==3"

9 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6

10 SQL SELECT QL1 QS7

* - ...