技术论坛

 回复:WinCC V7.2 数据库连接问题请教

返回主题列表
作者 主题
xiaode
奇侠

经验值:8419
发帖数:1342
精华帖:2
楼主    2015-09-02 10:02:40
主题:WinCC V7.2 数据库连接问题请教

 我这边电脑安装了WinCC V7.2 版本, 在自带的SQLServer 中建立了一个数据库,并且在电脑的ODBC 的用户DSN 和系统DSN中,都添加了该数据库,并在添加的时候,测试连接成功。我在脚本中编了程序,用来查询,但是不成功,具体的程序如下:

Dim A_AirTest_Pro

Dim cn

Dim rst

Dim rstCom

Dim strcn

Dim objItem

Dim strsql

 

A_AirTest_Pro= HMIRuntime.Tags("Air_Program_No_01").Read

 

 

HMIRuntime.Tags("Air_Fill_Time_01").Write 0.0

HMIRuntime.Tags("Air_Steady_Time_01").Write 0.0

HMIRuntime.Tags("Air_Check_Time_01").Write 0.0

 

HMIRuntime.Tags("Air_Fill_Press_01").Write 0.0

HMIRuntime.Tags("Air_Steady_Press_01").Write 0.0

HMIRuntime.Tags("Air_Check_Press_01").Write 0.0

 

HMIRuntime.Tags("Air_Process").Write "Data Read Finsh"

 

 'strcn = "Data Source=Test_01;UID='';PWD='';"

strcn = "Data Source=Test_01;UID=shc30053;PWD=shc30053;"

Set cn = CreateObject("ADODB.connection")

 

cn.ConnectionString = strcn

cn.Open

 

HMIRuntime.Tags("Air_Process").Write "Sql Server connection"

 

strsql = "SELECT * FROM Air_Leak_Test Where Program_No ="&A_AirTest_Pro&""

HMIRuntime.Tags("Air_Process").Write "Sql Server connection_01"

 

Set rst = CreateObject("ADODB.Recordset")

HMIRuntime.Tags("Air_Process").Write "Sql Server connection_02"

 

Set rstCom = CreateObject("ADODB.Command")

HMIRuntime.Tags("Air_Process").Write "Sql Server connection_03"

 

rstCom.CommandType=1

HMIRuntime.Tags("Air_Process").Write "Sql Server connection_04"

 

Set rstCom.ActiveConnection = cn

HMIRuntime.Tags("Air_Process").Write "Sql Server connection_05"

 

rstCom.CommandText = strsql

HMIRuntime.Tags("Air_Process").Write "Sql Server connection_06"

 

Set rst = rstCom.Execute

'rstCom.Execute

 

HMIRuntime.Tags("Air_Process").Write "Sql command execute"

 

If Not rst.eof Then

rst.MoveFirst

HMIRuntime.Tags("Air_Fill_Time_01").Write rst.Fields(0).value

HMIRuntime.Tags("Air_Steady_Time_01").Write rst.Fields(1).value

HMIRuntime.Tags("Air_Check_Time_01").Write rst.Fields(2).value

 

HMIRuntime.Tags("Air_Fill_Press_01").Write rst.Fields(3).value

HMIRuntime.Tags("Air_Steady_Press_01").Write rst.Fields(4).value

HMIRuntime.Tags("Air_Check_Press_01").Write rst.Fields(5).value

 

End If

 

 

rst.close

cn.close

Set rst=Nothing

Set cn=Nothing

程序走到

Set rst = rstCom.Execute 这里不走了,也就是说,该语句并没有执行。但是以上的代码在WinCC V7.0 中是可以执行的。不知道为什么在7.2 中就执行不下去。希望大家帮忙解答一下。多谢了!

二者的区别,我看了一下,7.0 装在32位的操作系统Win7 企业版 SP1 .7.2 装在64位的操作系统Win7 企业版SP1。

 


every day is new day !
xiaode
奇侠

经验值:8419
发帖数:1342
精华帖:2
6楼    2015-09-09 14:24:01
精华帖  主题:回复:WinCC V7.2 数据库连接问题请教

谢谢!问题已经解决了,你说的是我会试一下。

是那个语句有问题的,就是64位系统的不能用这个语句,而32位的系统是可以用的。至于为什么,我也不知道。希望有高人可以解答一下。

具体的语句有两种,如下:

1。 strcn = "Driver={SQL Server};Server=.\WINCC;UID=;PASS=;database=Test_01"

2。

strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info =False;Initial Catalog=Test_01;Data Source =.\WinCC"

every day is new day !
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。