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=''WD='';" strcn = "Data Source=Test_01;UID=shc30053WD=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。
---------这到底是要read呢还是write呢?
------是Write ,刚开始的Write ,是清零。后面的是查询值。
---------明白了 HMIRuntime.Tags("Air_Process").Write "Sql Server connection_03" 这些语句原来是你做的诊断啊!
在调试动态的SQL语句之前应该先用固定的SQL语句调通。
-------那些语句是诊断的,笨人笨法啊,不太理解您的动态SQL 语句 ,和固定的SQL 语句?能否帮忙解释一下?关于SQL的语句,我在SQL Server 中,新建一个查询,是没有错误的,可以查出来结果。并结果也是正确的。多谢!
-----strcn = "Data Source=Test_01;UID=shc30053WD=shc30053;" 这一句似乎有问题。你修改成这个形式试试: strcn ="rovider=MSDASQL;DSN=report;UID=shc30053WD=shc30053;" dsn中默认指向你需要的数据库
--------谢谢!问题已经解决了,你说的是我会试一下。
是那个语句有问题的,就是64位系统的不能用这个语句,而32位的系统是可以用的。至于为什么,我也不知道。希望有高人可以解答一下。 具体的语句有两种,如下: 1。 strcn = "Driver={SQL Server};Server=.\WINCC;UID=ASS=;database=Test_01" 2。 strcn = "rovider=SQLOLEDB.1;Integrated Security=SSPIersist Security Info =False;Initial Catalog=Test_01;Data Source =.\WinCC"
--------我也遇到这个问题了 原本在32位系统中运行的脚本到了64位里面就不运行了…… 链接数据库"rovider=OraOLEDB.Oracle.1;Data Source=zzex;User ID=systemassword=zzex;" 是这句出的问题吗?需要怎么改,麻烦指教下
------你这个是连接远程的数据库,不是本机上的数据库,首先要测试的服务器上的数据库,是否允许该机访问。做一下测试。
-------你那个是甲骨文的数据库,没有用过,也不懂的。不过SQL的远程数据库的连接如下: strcn="Driver={SQL Server};Server=dbs10;UID=sa;PWD=sa;database=basename" 仅供参考。
|