WinCC连接Oracle数据库(VB)

现在想用WinCC和Oracle数据库连接通信。连接已经没有问题,简单的读写也没有问题。
 我得代码如下:
 strConnectionString = "DRIVER={Oracle ODBC Driver};UID=Sys;PWD=Sys;DBQ=Sys;"
 strSQL = "select name from stu where ID = 1;" 
 Set objConnection = CreateObject("ADODB.Connection")
 objConnection.connectionString = strConnectionString
 objConnection.Open
 Set objRecordset = CreateObject("ADODB.Recordset")
 Set objCommand = CreateObject("ADODB.Command")
 objCommand.ActiveConnection = objConnection
 objCommand.CommandText = strSQL
 Set objRecordset = objCommand.Execute
 lngCount = objRecordset.Fields.Count
 If (lngCount>0) Then
 objRecordset.movefirst
 lngValue = objRecordset.Fields(0).Value
 HMIRuntime.Tags("dbValue").Write lngValue
 ...
 (dbValue为我自己定义的接受数值的内部变量)
 以上代码经测试没有问题,现在还有些功能不知道怎么实现:
 1,当我想在STU表中选择ID = 1时候的两列:Name和Address(都存在)的时候,如何操作,上述过程只选择了Name,如果写入"Select name,address from stu where id = 1;"的时候,objRecordset.Fields(0).Value按我得理解应该有两个列的数值,这时候想给我的变量赋值要怎么做呢?(以dbValue1,dbValue2为例)
 2,我如何在我得SQL语句中加入变量,比如,当我要执行插入语句"insert into stu(id,name) values(3,'RRR')"直接excute就可以了,但是,如果我得'RRR'是一个变量(str变量)来的值,那要怎么写呢?我尝试了"insert into stu(id,name) values(3,'"+str+"')"不行。不知道怎么做了。
 3,当我想对Recordset取得的结果进行有无判断的时候,按照我得理解,我是检查lngCount是否等于0,但实际上既是搜索结果为空的时候,lngCount依然为1(为多个的时候也是1),所以if无论如何都会被执行(else总部执行),不知道错到什么地方了,要实现这种功能我应该怎么办呢?

 -----------
 另外上次提问关于Wincc中方法的应用问题的时候,分给错了。。。应该给 dcount107的,由于匆忙没有仔细看, 分数给错了,dcount107得答案非常简明到位,希望 dcount107能看到,多谢了。

问题补充:
第二个问题已经解决了,用那种方式是可以的,刚才可能代码写错了。请大家集中在第一个和第三个问题上吧。谢谢。

最佳答案

咦,我看到了,呵呵。问题解决就行,不必介怀。

 说实在话,你的问题已经远远超出了WinCC的范围,建议你多找一些数据库方面的资料看看。

 1、"Select name,address from stu where id = 1;"
 objRecordset.Fields(0).Value  就是name字段的值
 objRecordset.Fields(1).Value  就是address字段的值
 为了使程序更加明了,建议使用objRecordset.Fields("name").Value和objRecordset.Fields("address").Value的方法;

 3、objRecordset.Fields.Count这里取到的是字段的数量,而不是记录的数量,要用objRecordset.RecordCount;

提问者对于答案的评价:
非常感谢!!!我还有个问题,已经没有分数了,用MJconfig这个id发了问题了,50分,希望你也能帮我回答啊!!太感谢了!!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • 如何组态连接报警信息

    建立一个小型系统,由S7224和MP277组成,MP277与PLC之间通过DP网络连接,组态下载后,无论MP277是否与224之间存在DP网络连接,MP277运行组态后并不弹出连接…

    SIMATIC WinCC 2019年6月11日
  • wincc如何修改操作站权限使操作员只能监视,不能操作

    wincc如何修改操作站权限使操作员只能监视,不能操作?我已经在资源管理器改了/还是不行,我是想把某个操作站的电气的开停车按钮禁止 最佳答案 除了给操作员用户分配权限外,还需要给你…

    SIMATIC WinCC 2017年6月13日
  • wincc的Audit资料

    谁wincc的Audit资料?最好有中文的 最佳答案 你可以下载下面的资料—— http://www2.ad.siemens.com.cn/download/Upload…

    SIMATIC WinCC 2019年6月11日
  • WINCC在线表格的时间间隔

    我在变量记录中对过程值做了数据记录,想在在线表格中显示或查询。我想让数据的时间间隔为1小时或2小时,如何做呢。我改时间精度,最大只能为1分钟。我用的是WINCC7.0 S…

    2017年11月6日
  • wicc做个动态

    我想用wicc做个动态!举个例子:在界面上有一辆小车从A位置移动到B位置,小车要动的!不知道用那个功能能实现!最好不要用脚本来编的! 问题补充:能否具体点!最好有例子 最佳答案 小…

    SIMATIC WinCC 2019年6月11日
  • WINCC运行有问题

    电脑配置,I5处理器,4G内存,显卡1G,DELL台式机,23寸显示器,win7,32位专业版正版系统,正版winc7.3,wincc里用了很多画中画,做了有结构变量的画面窗口,完…

    2017年6月8日
  • 画面无法切换

    PCS7V7.0,过段时间,画面就切换不了,数据有变化,电脑也没死机,项目重启后正常,这是什么原因?有两个站,都一样的现象 问题补充:谢谢 剑忠 的回答。不过,…

    SIMATIC WinCC 2019年6月11日
  • 用户归档授权过期??

    WINCC6.0版本,装的是SIK/SIMATIC WINCC-V6 Arch 4G ATG UNLIM,这个用户归档的授权是没有…

    SIMATIC WinCC 2019年6月11日
  • mtp是什么编程软件编程的项目扩展名

    WInCC Flexible 2008项目的扩展名是hmi,WinCC项目的扩展名mcp,mtp是什么编程软件编程的项目扩展名?谢谢! 最佳答案 威纶触摸屏的扩…

    2021年7月5日
  • WinCC怎么做声音报警

    WinCC V7.4 SP1中实现声音报警的方法 课程编号:V1670 本视频介绍了WinCC&nbsp…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列…

    2021年7月5日