发表于:2010-11-04 21:43:35
楼主
在WINCC里,用VBS读取和写入到SQL2000数据方法有以下几种(仅写出本人实验通过的方法,至于其它方法,本人没有试验过,不在讨论范围)
第一种方法代码如下(写入数据)
Dim cn,strSQL,strcn
Set cn = CreateObject("ADODB.Connection")
strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=glj;Data Source=GLJ077\wincc"
cn.ConnectionString = strcn
cn.Open strcn
strSQL = "INSE INTO W1 (xm) VALUES (‘glj077‘)" //注意:这里的INSE并不是插入的语法,因为插入的语法被认为非法,所以只有写成这样
cn.Execute strSQL
cn.close
set cn=Nothing
以上方法立用了字符串连接函数的Execute方法,实现对数据库的写入操作(改变strSQL字符的值应该可以实现其它操作,不过本人没有实验过)
第二种方法代码如下:(可写可读)
Dim cn,strSQL,strcn
Dim rs,rs1
Dim Rvalue
Set cn = CreateObject("ADODB.Connection")
Set rs=CreateObject("ADODB.RecordSet")
Set rs1=CreateObject("ADODB.RecordSet")
strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=glj;Data Source=GLJ077\wincc"
cn.ConnectionString = strcn
cn.Open strcn
strSQL = "Select * from W1"
rs.CursorLocation = 1(此处必须写数字代替字符串常量)
写入数据
Set rs1=rs.Open strSQL, cn, 1, 3 (同样,也必须用数字)
rs1.AddNew 新建一条记录
rs1.Fields("xm")="glj077" 往数据库表W1字段为xm中写入一条记录,
值为glj077
rs1.Upd //注意:更新的语法并不是UPD,因为更新的语法被认为是非法字符,所以只有写成这样了
读取数据
Set rs1=rs.Open strSQL, cn, 1, 3
rs1.Movefist
Rvalue =rs1.Fields("xm") 读取第一条记录的值,修改SQL查询语句可以
查找特定记录
rs1.close
rs.close
cn.close
set rs=Nothing
set rs1=Nothing
set cn=Nothing
这种方法是利用记录集的方法来操作数据库的。
以上是我这几天的学习试验的结果,希望对大家有点帮助,因为本人水平有限,还请高人指点,谢谢!!! 注意:在进行以代码编写时,请保证"查询分析器"可以连到SQL2000的服务器上.