InTouch 与关系数据库的数据交互

来源:互联网 发布:python web flask 编辑:程序博客网 时间:2024/05/17 03:37

    这几天都在学着使用美国的组态软件-intouch,以前用过几款国内的组态软件,MCGS、组态王、世纪星都很不错,这是第一次接触久负盛名获奖无数的intouch,但是有点失望,因为能找到它的资料实在太少了,少到让人怀疑这款产品是否已经退市。虽然它比较贵限制了使用范围,但是很多工程都在使用它,奈何能找到的资料只有它的用户手册、参考手册、过程可视化组态软件InTouch应用技术(马正午)和几篇应用文档而已,它的中文官网只是把美国的官网简单的译成了中文界面,wonderware北京办事处也没有客服电话,能下到的官方文档少得可怜,其中有一篇《InTouch 与关系数据库的数据交互》比较有参考价值,我参照它做了个例子,其中遇到了一个小问题。


    标准流程:1.建立access数据库。2.连接ODBC。3.在intouch的按钮脚本中输入ResultCode = SQLConnect( ConnectionId, "DSN= SQLAM_Access" ); 连接数据库,ResultCode = SQLInsert( ConnectionId, “InTouchData”, “BindedTable” ); 插入数据,ResultCode = SQLDisconnect( ConnectionId ); 断开数据库。真的非常简单。


 

    问题:执行SQLConnect命令后,通过读取resultcode对应的errormsg是“无效连接”,查看connectionid始终是0,也证明没有连接上。


    思路:1.命令是否输入错误?完全是通过点击脚本编辑界面上的SQLConnect、“()”、“ = ”输入的命令,重新输入一遍确信没有输错,重试失败。2.数据库有问题?重建access文件,重新连接ODBC,而且把用户和系统都连接上,重试失败。就这两个方面,还都没有问题,奇怪!3.用VB编个小程序用ADO连接数据库,正确,锁定问题出在intouch上。4.再次核对SQLConnect命令,并且用键盘重新手动输入这一句,重试成功,resultcode为0每次连接后connectionid自动加1。


   问题所在:经比较后发现intouch脚本编辑界面上的“ = ”不仅仅是个等号,它两边还各有一个空格,这与使用键盘直接输入等号不同,结果DSN地址错误造成无效连接。可见,细节决定成败,一定要细心!一般组态软件的脚本都是用类C或者Basic语言,VB中的DSN后面如果写成“ = ”形式也一样连接数据库,不明白为什么intouch自己的命令提示按钮“ = ”却会出现这种问题??

原创粉丝点击