日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PC软件开发技术之一:在WinCC中通过VBS操作SQL Server2005

發(fā)布時間:2024/7/23 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PC软件开发技术之一:在WinCC中通过VBS操作SQL Server2005 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

在項目中需要在一定條件滿足時,保存一些數(shù)據(jù)到數(shù)據(jù)庫中,并可根據(jù)條件查詢??紤]到WinCC6.2以后采用的就是SQL Server2005數(shù)據(jù)庫,所以直接利用該數(shù)據(jù)庫即可,通過SQL Server Management Studio(SSMS)可以創(chuàng)建自己的數(shù)據(jù)庫,并按要求創(chuàng)建好表。

一、數(shù)據(jù)庫連接

在SQL Server Management Studio(SSMS)中創(chuàng)建名為evcp的數(shù)據(jù)庫,再創(chuàng)建名為evcp的表,然后根據(jù)需要創(chuàng)建Columns,在本項目中創(chuàng)建了norder(流水號)、pileno(樁號)、cardno(卡號)、operno(員工號)、energy(電量)、cost(金額)、period(時長)、rate(費率)、pdate(日期)和ptime(時間)。

在本項目中采用ODBC的方式連接數(shù)據(jù)庫,首先在控制面板中創(chuàng)建好數(shù)據(jù)源,配置好SQL Server驅(qū)動數(shù)據(jù)源,命名為evcs。

二、數(shù)據(jù)寫入

要求在一個狀態(tài)量值為1的時候完成數(shù)據(jù)庫的保存,等數(shù)據(jù)保存完后將狀態(tài)量清0。

1、先在全局腳本VBS項目模塊中創(chuàng)建函數(shù)savedata,代碼如下:

Sub savedata Dim objConnection Dim objCommand Dim objRecordset Dim strConnectionString Dim strSQL Dim norder,pileno,cardno,operno,energy,cost,period,rate,pdate,ptimenorder=HMIRuntime.Tags("norder").Read pileno= HMIRuntime.Tags("pileno").Read cardno=HMIRuntime.Tags("cardno").Read operno= HMIRuntime.Tags("operno").Read energy= HMIRuntime.Tags("energy").Read cost= HMIRuntime.Tags("cost").Read period= HMIRuntime.Tags("period").Read rate= HMIRuntime.Tags("rate").Read pdate= HMIRuntime.Tags("pdate").Read ptime= HMIRuntime.Tags("ptime").ReadstrConnectionString = "Provider=MSDASQL;DSN=evcs;UID=;PWD=;" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.OpenSet objRecordset = CreateObject("ADODB.Recordset") Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnectionstrSQL = "insert into evcp (norder,pileno,cardno,operno,energy,cost,period,rate,pdate,ptime) values ("&_ "'"&norder&"',"&_ "'"&pileno&"',"&_ "'"&cardno&"',"&_ "'"&operno&"',"&_ "'"&energy&"',"&_ "'"&cost&"',"&_ "'"&period&"',"&_ "'"&rate&"',"&_ "'"&pdate&"',"&_ "'"&ptime&"')" 'MsgBox (strSQL) objCommand.CommandText = strSQL objCommand.ExecuteSet objCommand = Nothing objConnection.Close Set objRecordset = Nothing Set objConnection = Nothing End Sub

2、在全局腳本VBS動作中創(chuàng)建1秒周期的周期性出發(fā)動作,并添加如下代碼:

Option Explicit Function action Dim v1 v1=HMIRuntime.Tags("satuse").ReadIf v1 Then Call savedata HMIRuntime.Tags("satuse").Write 0 End if End Function

這樣當(dāng)satuse值為1時系統(tǒng)自動保存數(shù)據(jù)

三、數(shù)據(jù)查詢

數(shù)據(jù)的查詢要復(fù)雜一些,需要用到MSFlexGrid控件、MS Form2 ComboBox控件和MS Form2 TextBox,這幾個控件可以單獨注冊也可以安裝VB6后自動添加。

在查詢頁面上添加打開頁面執(zhí)行腳本如下:

Sub OnOpen() ???????????????????????? Dim MSFlexGrid1,cb1,tb1,tb2 Set MSFlexGrid1 = ScreenItems("控件1") Set cb1 = ScreenItems("cb1") Set tb1 = ScreenItems("tb1") Set tb2 = ScreenItems("tb2") MSFlexGrid1.ClearMSFlexGrid1.ColWidth(0) = 620 MSFlexGrid1.ColWidth(1) = 1500 MsFlexGrid1.ColWidth(2) = 1500 MSFlexGrid1.ColWidth(3) = 1500 MSFlexGrid1.ColWidth(4) = 1500 MSFlexGrid1.ColWidth(5) = 1500 MsFlexGrid1.ColWidth(6) = 1500 MSFlexGrid1.ColWidth(7) = 1500 MSFlexGrid1.ColWidth(8) = 1600 MSFlexGrid1.ColWidth(9) = 2000 MsFlexGrid1.ColWidth(10) = 2000MSFlexGrid1.TextMatrix(0,0) = "編號" MSFlexGrid1.TextMatrix(0,1) = "流水號" MSFlexGrid1.TextMatrix(0,2) = "樁號" MSFlexGrid1.TextMatrix(0,3) = "卡號" MSFlexGrid1.TextMatrix(0,4) = "操作員號" MSFlexGrid1.TextMatrix(0,5) = "電量(度)" MSFlexGrid1.TextMatrix(0,6) = "金額(元)" MSFlexGrid1.TextMatrix(0,7) = "時長(分)" MSFlexGrid1.TextMatrix(0,8) = "費率(元/度)" MSFlexGrid1.TextMatrix(0,9) = "日期" MSFlexGrid1.TextMatrix(0,10) = "時間" MSFlexGrid1.ColAlignment(0) = 4 MSFlexGrid1.ColAlignment(1) = 4 MSFlexGrid1.ColAlignment(2) = 4 MSFlexGrid1.ColAlignment(3) = 4 MSFlexGrid1.ColAlignment(4) = 4 MSFlexGrid1.ColAlignment(5) = 4 MSFlexGrid1.ColAlignment(6) = 4 MSFlexGrid1.ColAlignment(7) = 4 MSFlexGrid1.ColAlignment(8) = 4 MSFlexGrid1.ColAlignment(9) = 4 MSFlexGrid1.ColAlignment(10) = 4Dim i For i= 1 To 39 Step 1 MSFlexGrid1.TextMatrix(i,0) = i Nextcb1.Text="*" cb1.AddItem "*" cb1.AddItem "1" cb1.AddItem "2" tb1.Text="*" tb2.Text="*"End Sub

這段代碼主要是用來初始化控件的顯示。

在查詢按鈕加入相應(yīng)的代碼實現(xiàn)三個鍵值(樁號、卡號、操作員號)條件組合的查詢,代碼如下:

Sub Click(Byval Item) Dim objConnection Dim objCommand Dim objRecordset Dim strConnectionString Dim strSQL Dim MSFlexGrid1,cb1,tb1,tb2 Dim i1,i2,cv1,cv2,cv3,cv Set MSFlexGrid1 = ScreenItems("控件1") Set cb1 = ScreenItems("cb1") Set tb1 = ScreenItems("tb1") Set tb2 = ScreenItems("tb2")'清除原有記錄 For i1 = 1 To 39 Step 1 For i2=1 To 10 Step 1 MSFlexGrid1.TextMatrix(i1, i2) ="" Next NextstrConnectionString = "Provider=MSDASQL;DSN=evcs;UID=;PWD=;" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objRecordset = CreateObject("ADODB.Recordset") Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnectioncv1=0 cv2=0 cv3=0 If cb1.Text<>"*" Then cv1=4 End IfIf tb1.Text<>"*" Then cv2=2 End ifIf tb2.Text<>"*" Then cv3=1 End If cv=cv1+cv2+cv3 Select Case cv Case 7 strSQL = "select * from evcp where pileno like '"&cb1.Text&"'And cardno like '"&tb1.Text&"'And operno like '"&tb2.Text&"'" Case 6 strSQL = "select * from evcp where pileno like '"&cb1.Text&"'And cardno like '"&tb1.Text&"'" Case 5 strSQL = "select * from evcp where pileno like '"&cb1.Text&"'And operno like '"&tb2.Text&"'" Case 4 strSQL = "select * from evcp where pileno like '"&cb1.Text&"'" Case 3 strSQL = "select * from evcp where cardno like '"&tb1.Text&"'And operno like '"&tb2.Text&"'" Case 2 strSQL = "select * from evcp where cardno like '"&tb1.Text&"'" Case 1 strSQL = "select * from evcp where operno like '"&tb2.Text&"'" Case Else strSQL = "select * from evcp" End SelectobjCommand.CommandText = strSQLSet objRecordset = objCommand.ExecuteDim i i=0If (objRecordset.Bof And objRecordset.Eof) Then MsgBox("沒有符合要求的記錄") Else While Not objRecordset.EOF i=i+1 MSFlexGrid1.TextMatrix(i, 1) = CStr(objRecordset.Fields(0).Value) MSFlexGrid1.TextMatrix(i, 2) = CStr(objRecordset.Fields(1).Value) MSFlexGrid1.TextMatrix(i, 3) = CStr(objRecordset.Fields(2).Value) MSFlexGrid1.TextMatrix(i, 4) = CStr(objRecordset.Fields(3).Value) MSFlexGrid1.TextMatrix(i, 5) = CStr(objRecordset.Fields(4).Value) MSFlexGrid1.TextMatrix(i, 6) = CStr(objRecordset.Fields(5).Value) MSFlexGrid1.TextMatrix(i, 7) = CStr(objRecordset.Fields(6).Value) MSFlexGrid1.TextMatrix(i, 8) = CStr(objRecordset.Fields(7).Value) MSFlexGrid1.TextMatrix(i, 9) = CStr(objRecordset.Fields(8).Value) MSFlexGrid1.TextMatrix(i, 10) = CStr(objRecordset.Fields(9).Value) objRecordset.movenext Wend End IfSet objCommand = Nothing objConnection.Close Set objRecordset = Nothing Set objConnection = NothingEnd Sub

歡迎關(guān)注:

總結(jié)

以上是生活随笔為你收集整理的PC软件开发技术之一:在WinCC中通过VBS操作SQL Server2005的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人精品视频在线观看 | 久久大胆 | 欧美日韩电影一区二区 | 亚洲啪啪| 日韩中文字幕一区二区三区四区 | 久操精品| 色94色欧美sute亚洲线路二 | 日韩精品色呦呦 | 中文字幕一区二区久久人妻 | 欧美一级免费在线观看 | 免费av一级 | 亚洲视频一区在线观看 | 国产精品免费一区二区区 | 自拍毛片 | 国产精品老熟女一区二区 | 91中文字幕视频 | 六月婷婷在线观看 | 亚洲а∨天堂久久精品2021 | 午夜羞羞影院 | 亚洲第一综合 | 日韩黄色一区 | 日韩第1页 | 花样视频污 | 国产人妻精品一区二区三 | 少妇高潮一区二区三区69 | 欧美啪啪小视频 | 亚洲在线激情 | 狠狠干天天 | 日韩欧美一级在线 | 日韩欧美中文在线观看 | 免费午夜av | 日日夜夜精品免费视频 | 迈开腿让我尝尝你的小草莓 | 东方成人av在线 | 无码精品久久久久久久 | 成人免费入口 | 三级网站视频 | 超碰人人国产 | 欧美狠狠操 | 神马午夜在线 | 毛片在线播放视频 | 日韩欧美高清视频 | www.欧美在线观看 | 亚洲精品ww | 欧洲女女同videos | 免费一级片| 青青青手机在线视频 | 在线99 | wwwwxxxx欧美 | 毛色毛片| 老女人综合网 | 免费在线 | 91波多野结衣 | 视频国产在线 | 91超碰免费在线 | 国产精品久久久久久久蜜臀 | 国产女人高潮时对白 | 岛国av免费在线 | 最新免费av| 亚洲 另类 春色 国产 | 精品一区二区三区精华液 | 国产a级片视频 | 天天操人人 | jizz在线看 | 露出调教羞耻91九色 | 理想之城连续剧40集免费播放 | av成人资源 | 丁香花在线影院观看在线播放 | 丁香六月婷婷激情 | 久久综合激的五月天 | 国产综合视频一区二区 | 奇米在线视频 | 久久久久久久网 | 狠狠爱视频| 97在线视频免费 | 亚洲国产伊人 | 91麻豆视频 | 不卡免费av | 熟女熟妇伦久久影院毛片一区二区 | 免费在线视频观看 | 亚洲国产精品女人久久久 | 国产在线自 | 国产日韩精品suv | 日本强好片久久久久久aaa | 亚洲精品久久久久中文字幕二区 | 天天干狠狠 | 欧美日韩在线免费观看 | 97成人人妻一区二区三区 | av导航福利 | 法国空姐在线观看视频 | 久久久久久久国产精品视频 | 日本少妇激情视频 | 女女综合网 | 精品人妻伦一区二区三区久久 | 18做爰免费视频网站 | 中文在线免费看视频 | 日韩久久av | 山村大伦淫第1部分阅读小说 | 日韩精品视频在线看 |