回复:WINCC界面上如何实时显示远程数据库内的信息

zhangli0

版主 西门子1847工业学习平台

  • 帖子

    17139
  • 精华

    63
  • 被关注

    889

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2015-03-19 09:50:36

2楼

VBS连接SQL2000
在ODBC数据源中添加系统DSN,这样VBS即可调用ADO组件操作SQL数据,此例用的版本是SQL2000。
oCNN,oRS?Dim
oCNN=CreateObject("ADODB.Connection")?Set
oRS=CreateObject("ADODB.Recordset")?Set
"DSN=DataBaseName"?oCNN.Open
oRS,oCNN,"TableName"?OutputIntoTxt
oRS.Close
oCNN.Close
oRS=Nothing?Set
oCNN=Nothing?Set
"Done!"?Ws cript.Echo
第二种方法,其实只是ConnectionString的不同罢了,但是第二种可以访问远程数据库,只需修改Data Source属性的即可。Data Source填入远程服务器的IP地址。
而且,如果在没有设置DSN的情况下,只要能接入服务器,就能直接访问其中的某个数据库。所以相比第一种更实用的多。
CNN,RS?Dim
CNN=CreateObject("ADODB.Connection")?Set
RS=CreateObject("ADODB.Recordset")?Set
Source=(local)"?Catalog=DataBaseName;Data?Info=False;Initial?Security?Security=SSPI;Persist?"Provider=SQLOLEDB.1;Integrated?CNN.Open
UserLogin",CNN?From?UserName?"Select?RS.Open'SQL查询语句可自行修改
RS.MoveFirst
RS.BOF?Not?And?RS.EOF?Not?While?Do
RS.Fields.Item(0)?Ws cript.Echo
RS.MoveNext
Loop
RS.Close
CNN.Close
close=Nothing?Set
CNN=Nothing?Set
简单演示一下执行 存储过程(PROCEDURE) 的方法
cnn=CreateObject("adodb.connection")?Set
res=CreateObject("adodb.recordset")?Set
cmd=CreateObject("adodb.command")?Set
Source=(local)"?Catalog=school;Data?Info=False;Initial?Security?Security=SSPI;Persist?"Provider=SQLOLEDB.1;Integrated?cnn.Open
cmd?With
.ActiveConnection=cnn????
.CommandType=4????
.CommandText="test"????
.CreateParameter("cno",200,1,8,"c1")?param=?Set
param?.Parameters.Append????
.Execute?res=?Set
With?End
res.Fields("cno")?MsgBox
res.Fields("cname")?MsgBox
res.Fields("ct")?MsgBox
/////////////////////////////////////////////////////
VB使用ADO数据库可以分为有源数据库和无源数据库,即是否使用了DSN数据源,如下例:
1、在连接数据库前首先要在VB菜单中“工程”-“引用”从中选择 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.6两个组件,这是在连接数据前所必做的工作。
2、接下来定义ADO的连接对象,如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
第一种方法采用的是无源的数据库连接方法
conn.ConnectionString = "Driver={sql server};server=JSZX3-11;uid=sa;pwd=;database=wzc"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用户名,密码 from login where 用户名='" & Trim(Combo1.Text) & "' And 密码='" & Trim(Text1.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("请重新登录", vbExclamation)
Text1.Text = ""
Text1.SetFocus
Else
Form1.Hide
End If
rs.Close
这是第二种方法连接数据库的方法,这一种方法是采用有源的方法与数据库连接的方法,代码如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DSN=login;uid=sa;pwd=;"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用户名 from login", conn, adOpenStatic, adLockReadOnly, adCmdText
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1
i = Trim(rs.Fields("用户名").Value)
rs.MoveNext
Combo1.AddItem i
Next t
rs.Close
链接后读取数据到变量中。

脚本周期执行,winccio域显示变量内容。
活到老,学到老!为了生活学习吧!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32575条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

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