您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > wincc通过vbs访问数据库
本人通过WINCC的VBS读取SQL2000里的数据或者写入数据,通过在按钮控件做一个动作,当点击时写入数据库一个数据,代码如下:Dimrs,commDimcn,strcnDimis_sql,strSQLSetcn=CreateObject(ADODB.Connection)Setrs=CreateObject(ADODB.Recordset)strcn=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=glj;DataSource=GLJ077\wincccn.ConnectionString=strcncn.OpenstrSQL=INSERTINTOW1(xm)VALUES('glj077')rs.CursorLocation=adUseServerrs.OpenstrSQL,cn,1,3cn.CloseSetcn=Nothing发现如下问题:此代码在VB6.0中调试通过,可以写入数据glj077,但在WICC里不可以,虽然编译通过,但当按下按钮时,并没有写入数据.请各位高手帮忙看一下,是代码的问题还是需要在WINCC里还要装一些设置,望告之.谢谢!!!以上问题已解决,发现是代码问题,还有楼上那位兄弟说的对,常量不识别,必须用数字代替。通过这几天的试验,学到了不少东西,现把学到的东西和大家分享一下,希望可以抛砖引玉。在WINCC里,用VBS读取和写入到SQL2000数据方法有以下几种(仅写出本人实验通过的方法,至于其它方法,本人没有试验过,不在讨论范围)第一种方法代码如下(写入数据)Dimcn,strSQL,strcnSetcn=CreateObject(ADODB.Connection)strcn=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=glj;DataSource=GLJ077\wincccn.ConnectionString=strcncn.OpenstrcnstrSQL=INSERTINTOW1(xm)VALUES('glj077')cn.ExecutestrSQLcn.closesetcn=Nothing以上方法立用了字符串连接函数的Execute方法,实现对数据库的写入操作(改变strSQL字符的值应该可以实现其它操作,不过本人没有实验过)第二种方法代码如下:(可写可读)Dimcn,strSQL,strcnDimrs,rs1DimRvalueSetcn=CreateObject(ADODB.Connection)Setrs=CreateObject(ADODB.RecordSet)Setrs1=CreateObject(ADODB.RecordSet)strcn=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=glj;DataSource=GLJ077\wincccn.ConnectionString=strcncn.OpenstrcnstrSQL=Select*fromW1rs.CursorLocation=1(此处必须写数字代替字符串常量)写入数据Setrs1=rs.OpenstrSQL,cn,1,3(同样,也必须用数字,发现没有,这个和我最初的代码有什么不一样,这也是我最初的程序不能正确执行的关键)rs1.AddNew新建一条记录rs1.Fields(xm)=glj077往数据库表W1字段为xm中写入一条记录,值为glj077rs1.Update读取数据Setrs1=rs.OpenstrSQL,cn,1,3rs1.MovefistRvalue=rs1.Fields(xm)读取第一条记录的值,修改SQL查询语句可以查找特定记录rs1.closers.closecn.closesetrs=Nothingsetrs1=Nothingsetcn=Nothing这种方法是利用记录集的方法来操作数据库的。以上是我这几天的学习试验的结果,希望对大家有点帮助,因为本人水平有限,还请高人指点,谢谢!!!
本文标题:wincc通过vbs访问数据库
链接地址:https://www.777doc.com/doc-4297541 .html