WinCC、Connectivity Pack 连接数据库问题(补充2)

(1)我使用OLE-DB访问本地数据库,VBS使用的是@DataSourceNameRT访问数据库,不知怎么的报错,求解答啊,谢谢。
(2)WINCC数据库的名称在哪里啊,本地的SQL 2005工具我点击了下,看不见啊,求大神啊,现在看文档都说使用@DataSourceNameRT的变量访问最好,但是又报错。求帮助啊,谢谢
我是用的是 WINCC FLEXIABLE 2008 
源代码

Function WinCCDataSourceAcess(connObj,pSQL)

'建立到数据库的连接
'读取本地的WinCC运行数据库名称
Dim DatasourceNameRT,DataConnectionName

Set DatasourceNameRT = HmiRuntime.Tags("@DatasourceNameRT")
DatasourceNameRT=DatasourceNameRT.Read

'定义数据库连接字符串      
Dim sPro,sDsn, sSer 
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn =  "Catalog=" & DatasourceNameRT & ";"
sSer = "Data Source=.\WinCC"
DataConnectionName = sPro + sDsn + sSer

' 定义查询语句字符串
Dim sSQL
sSQL=pSQL

'建立连接
Dim oRs,oCom,conn
Set conn = CreateObject("ADODB.Connection")
Set conn=connObj
conn.ConnectionString = DataConnectionName
conn.CursorLocation = 3
conn.Open

'创建查询的命令文本
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText=sSQL

'执行查询
Set oRs = oCom.Execute

'返回结果
Set WinCCDataSourceAccess=oRs

If Err.Number <> 0 Then

'MsgBox  "error Code" & Err.Number & "Source:" & Err.Source & "error description" & Err.Description
Err.Clear

End If

On Error GoTo 0

End Function

图片说明:

WinCC、Connectivity Pack 连接数据库问题(补充2)   

最佳答案

建议你将@DatasourceNameRT换成实际的数据库的名称,因为该变量 是WINCC组态软件的内部系统变量,你的脚本在WINCC里面是可行,放在WINCC FLEXIABLE 2008 中,不一定能识别。
        另外,我怎么觉得你写的脚本像是WINCC里面的脚本啊,不会弄差了吧??
         建议 参考一下以下资料:
         http://support.automation.siemens.com/CN/llisapi.dllfunc=cslib.csinfo&lang=zh&objid=26283062&caller=view

提问者对于答案的评价:
虽然没解决问题,但是还有参考的价值

专家置评

答非所问!WINCC FLEXIABLE 2008与wincc v6/v7是完全不同的两个软件。
F0359 SIMATIC WinCC和SIMATIC WinCC Flexible的区别 
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0359

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

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

相关推荐