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日 上午9:37
下一篇 2019年6月11日 上午9:37

相关推荐

  • wincc 6.2问题

    xp sp2系统,安装wincc6.2后能使用,从别的电脑上拷贝了一个项目,打开之后,画面上的文字都是显示的问号,请问是怎么回事呀?请大侠指导。 最佳答案 1、打开编辑的…

    SIMATIC WinCC 2019年6月11日
  • 有没有比较好的方式做数据的报表?

    有没有比较好的方式做数据的报表?西门子自带的软件报表好像不是很好,有没有第三方软件,或者更好的方式! 问题补充:我只是想通过excel来提取step7里面的变量记录,不需要很复杂的…

    SIMATIC WinCC 2018年12月3日
  • 不能下载资料

    为什么注册全球技术资源。到邮箱验证的时候总是提示不通过。无法下载软件资料 最佳答案 建议注册时,最好与在找答案中所使用的注册信息一致。但在设置密码时,可以不一样,在全球技术资源库中…

    SIMATIC WinCC 2021年7月5日
  • 我是新手,S7 200与Wincc用PC/PPI电览,请问PPI协议怎么获取?

    Wincc需要注意哪方面?一般要安装多少组件? 最佳答案 wincc安装完后单独安装pc access,不须另外授权 相关资料发给你看看 提问者对于答案的评价:…

    SIMATIC WinCC 2019年6月11日
  • WINCC V7.5 SP1兼容 博图V16专业版的问题!

    电脑安装了WINCC V7.5 SP1,但是博图V15却装不上去。在官网上下载了一个软件兼容性表格。表上的意思是WINCC V7.5 SP1…

    2021年7月5日
  • 高分求确切答案

    求教诸位高手,装有wincc flexible的笔记本电脑如何连接s7-200? 我想学学wincc flexible,现已有2007中文版及其视频教…

    SIMATIC WinCC 2019年6月11日
  • wincc 画面放大

    wincc 画面组图显示小图,点击后画面整体放大一倍,有什么办法吗? 最佳答案 画面组态后,新建一个大画面 ,在点击区域 建立画面连接 提问者对于答案…

    SIMATIC WinCC 2021年7月5日
  • MP277屏能否用U盘来代替MMC卡存储数据

    MP277屏能否用U盘代替存储卡来存储数据、报警数据和历史数据,谢谢了!! 问题补充:俱怀逸兴壮思飞 你好:我用U盘了、存储路径\Storage Card&nb…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.0授权问题

    以前授权好好的啊这两天显示 simatic wincc RC(A9WRC?0700)未授权啊 可是已经授权过了啊 求解 最佳答案 …

    SIMATIC WinCC 2018年12月14日
  • Wincc结构变量无法删除

    在wincc中,我导入的结构变量不小心导错了, 却无法删除,提示“选择的对象是只读的或包含只读对象”,删除动作停止!请问怎么解决? 最佳答案 参考链接: htt…

    SIMATIC WinCC 2019年6月11日