WebAccess SQL脚本案例 点击:1214 | 回复:0



PLC酷客

    
  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2013-09-26 13:38:19
楼主

WebAccess SQL脚本案例

此例为真实案例,客户在bwcfg.mdb中添加了数据表,叫MYODBCConnetor,表内各字段对应WebAccess点值,且都是常数点,其中一个字段叫“料号”,对应常数点“料号”。客户做了一个运行画面,如图。

 

期待效果是现场操作员修改每个栏位之后,按下按钮时,后台判断数据表中是否有料号一样的记录;如果没有,则添加一条记录到数据表中。
脚本如下:
SQLPREPARE "CONNECT SESSION 9 TO bwdb_Access"
SQLEXECUTE
SQLPREPARE "USE SESSION 9"
SQLEXECUTE
SQLPREPARE "DECLARE C1 CURSOR FOR SELECT COUNT(*) FROM MYODBCConnetor WHERE 料号='[GETVAL 料号常数点]'"
SQLEXECUTE 
SQLPREPARE "OPEN C1"
SQLEXECUTE
SQLPREPARE "FETCH NEXT C1 INTO PNCount"
SQLEXECUTE
SQLPREPARE "CLOSE C1"
SQLEXECUTE
SQLDIRECT "DISCONNECT SESSION 9"
if {[GETVAL PNCount]==0} then {

MCREXEC 新增料号记录.mcr
}
if {[GETVAL PNCount]!=0} then {


MCREXEC 新增料号记录错误提示.mcr
}

其中:
1.
连接数据库
a)
首先要连接的数据库必须为一个数据源;
b)
先预定一个连接点名,如“SESSION 9”,用户自行定义,使用以下语句来使SESSION 9连接点连接上数据库;
SQLPREPARE "CONNECT SESSION 9 TO bwdb_Access"
SQLEXECUTE
c)
调用以下语句连使用SESSION 9连接点;
SQLPREPARE "USE SESSION 9"
SQLEXECUTE
2.
查询数据表中对应记录数
a)
组织数据表中“料号”字段为当前“料号常数点”点值的记录数查询命令;
SQLPREPARE "DECLARE C1 CURSOR FOR SELECT COUNT(*) FROM MYODBCConnetor WHERE 料号='[GETVAL 料号常数点]'"
SQLEXECUTE 
b)
执行语句;
SQLPREPARE "OPEN C1"
SQLEXECUTE
c)
将查询到的记录数赋值到常数点PNCount中;
SQLPREPARE "FETCH NEXT C1 INTO PNCount"
SQLEXECUTE
d)
关闭语句;
SQLPREPARE "CLOSE C1"
SQLEXECUTE
3.
断开连接
SQLDIRECT "DISCONNECT SESSION 9"
4.
根据查询到的结果做不同处理
if {[GETVAL PNCount]==0} then {

MCREXEC 新增料号记录.mcr
}
if {[GETVAL PNCount]!=0} then {

MCREXEC 新增料号记录错误提示.mcr
}
数据保存功能在一个后台程序中实现,由“新增料号记录.mcr”触发,此处不做讨论。



楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师