1、 建立數(shù)據(jù)庫(kù)表格
使用ACCESS數(shù)據(jù)庫(kù),建立數(shù)據(jù)庫(kù)表,命名“DeviceInfo”。
2、組態(tài)王建立內(nèi)存變量
3、創(chuàng)建記錄體
創(chuàng)建與Access數(shù)據(jù)庫(kù)關(guān)聯(lián)的記錄體。數(shù)據(jù)類型、字段名稱與數(shù)據(jù)庫(kù)中表格的相應(yīng)內(nèi)容應(yīng)保持一致。
4、關(guān)聯(lián)數(shù)據(jù)源
在應(yīng)用程序啟動(dòng)時(shí)添加數(shù)據(jù)庫(kù)連接語(yǔ)句。
5、自定義函數(shù)
編寫自定義函數(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的插入,以及時(shí)間計(jì)算等功能。
函數(shù)內(nèi)容如下所示。
if (var==1)
{
//寫入數(shù)據(jù)庫(kù),字段賦值
\\本站點(diǎn)\DB_DESC=name;
\\本站點(diǎn)\DB_START=\\本站點(diǎn)\$日期+""+\\本站點(diǎn)\$時(shí)間;
\\本站點(diǎn)\DB_END="";
\\本站點(diǎn)\DB_LENGTH="";
SQLInsert( DeviceID,"DeviceInfo", "BIND" );//向數(shù)據(jù)中,插入一條記錄
}
else
{
string whrStr="描述='"+name+"'and 結(jié)束時(shí)間='" + " '" ;
string selStr="select * fromDeviceInfo where " + whrStr;
SQLSetStatement( DeviceID, selStr);
SQLExecute( DeviceID, "BIND",0 ); //功能等同sqlselect函數(shù)
string startStr = \\本站點(diǎn)\DB_START;
//開始時(shí)間轉(zhuǎn)換秒
string midY=StrMid ( startStr, 1, 4 );
string midM=StrMid ( startStr, 6, 2 );
string midD=StrMid ( startStr, 9, 2 );
string midH=StrMid ( startStr, 12, 2 );
string midMi=StrMid ( startStr, 15, 2 );
string midS=StrMid ( startStr, 18, 2 );
long lY=StrToInt ( midY);
long lM=StrToInt ( midM);
long lD=StrToInt ( midD);
long lH=StrToInt ( midH);
long lMi=StrToInt ( midMi);
long lS=StrToInt ( midS);
long startTime= HTConvertTime(lY,lM,lD,lH,lMi,lS);
long endTime= HTConvertTime (\\本站點(diǎn)\$年,\\本站點(diǎn)\$月,\\本站點(diǎn)\$日,\\本站點(diǎn)\$時(shí),\\本站點(diǎn)\$分,\\本站點(diǎn)\$秒);//結(jié)束時(shí)間轉(zhuǎn)換秒
//計(jì)算時(shí)間差
long timeLength=endTime-startTime;//單位秒
string endStr=StrFromInt ( timeLength, 10)+"秒";
//寫入數(shù)據(jù)庫(kù),所有字段重新賦值
\\本站點(diǎn)\DB_END=\\本站點(diǎn)\$日期+""+\\本站點(diǎn)\$時(shí)間;
\\本站點(diǎn)\DB_LENGTH=endStr;
//設(shè)置查詢條件,當(dāng)條件相同時(shí)更新數(shù)據(jù)庫(kù)中的記錄
SQLUpdate( DeviceID,"DeviceInfo", "BIND", whrStr);
}
6、數(shù)據(jù)改變命令語(yǔ)言,引用自定義函數(shù)
分別定義作為設(shè)備啟停信號(hào)的bool型變量,并分別用此變量作為數(shù)據(jù)改變命令語(yǔ)言的變量
7、運(yùn)行
切換各開關(guān)狀態(tài)模擬設(shè)備開啟停止,點(diǎn)擊查詢可以查看設(shè)備狀態(tài),如果設(shè)備已開啟卻未停止,點(diǎn)查詢后只會(huì)出現(xiàn)設(shè)備開始運(yùn)行的時(shí)間。