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()