我不會上傳圖片。
第壹節SQL訪問管理器
摘要
組態王SQL訪問功能實現組態王與其他外部數據庫之間的數據傳輸(通過ODBC訪問接口)。包括組態王的SQL訪問管理器和相關的SQL函數。
SQL Access Manager用於建立數據庫字段與組態王變量的關系,包括“表模板”和“記錄體”。通過表格模板在數據庫表格中建立對應的表格;通過記錄體建立數據庫字段與組態王的連接。同時允許組態王通過記錄體直接操作數據庫中的數據。
創建數據源和數據庫
先建壹個數據庫,這裏我們選擇Access數據庫(路徑:d:\peixun,數據庫名:mydb.mdb)。
然後,創建壹個由Microsoft Access驅動程序(*)驅動的新數據源。mdb),然後配置數據源指向剛剛建立的access數據庫(即mydb.mdb),如圖9-1所示:
圖9-1 ODBC數據源的建立
創建表格模板
1.在項目瀏覽器窗口左側項目目錄顯示區的SQL Access Manager中選擇“表單模板”選項,雙擊右側目錄內容顯示區的“新建”圖標,打開創建表單模板對話框,創建三個字段,如圖9-2所示:
圖9-2創建表單模板對話框
2.單擊“確定”完成表單模板的創建。
創建表模板的目的是定義數據庫格式,當以後使用SQLCreatTable()函數時,可以使用該格式在Access數據庫中自動創建表。
創建記錄體
1.在項目瀏覽器窗口左側項目目錄顯示區的SQL Access Manager中選擇記錄體選項,雙擊右側目錄內容顯示區的“新建”圖標,打開創建記錄體的對話框。對話框設置如圖9-3所示:
圖9-3創建記錄體對話框
Access數據庫的表字段與組態王變量的對應關系是在記錄體中定義的,對應關系如下:
訪問數據庫表字段組態王變量
日期字段\ \此站點\ $ date
時間字段\ \此站點\ $ Time
原料油液位值\本站\原料油液位
即在組態王中將本站點的\ \ date變量的值寫入Access數據庫表的date字段中;將\ \ this site \ $的時間變量值寫入Access數據庫表的時間字段;將\ \本站\原始油位值寫入Access數據庫表的原始油位值字段;
2.點擊“確定”完成記錄體的創建。
註意:記錄體中的字段名必須與表模板中的字段名壹致,記錄體中字段對應的變量數據類型必須與表模板中相同字段對應的變量數據類型相同。
第二節數據庫操作
連接數據庫
1.在工程瀏覽器窗口的數據字典中定義壹個內存整數變量:
變量名:設備ID
變量類型:內存整數
2.創建壹個名為數據庫操作屏幕的新屏幕。
3.選擇工具箱中的工具,在屏幕上輸入單詞:數據庫操作。
4.在屏幕上添加壹個按鈕,其文本為:數據庫連接。
5.在按鈕的彈出事件中輸入如下命令語言,如圖9-4所示:
圖9-4數據庫連接命令語言
以上命令語言的作用是建立組態王與礦山數據源的連接(即建立與mydb.mdb數據庫的連接)。
在實際項目中,把這個命令寫成:工程瀏覽器>命令語言>應用命令語言>啟動,也就是系統開始運行時連接數據庫。
創建數據庫表
1.向數據庫操作屏幕添加壹個按鈕,其文本為:創建數據庫表。
2.在按鈕彈出事件中輸入以下命令語言,如圖9-5所示:
圖9-5創建數據庫表的命令語言
上述命令語言的作用是在數據庫中以表格模板“Table1”的格式創建壹個名為“KingTable”的表格。在生成的KingTable表中,會生成三個字段,字段名分別是:日期、時間、原始油位值,每個字段的變量類型、變量長度、索引類型與表模板“Table1”中的定義壹致。
這個命令語言只需要執行壹次。如果表格模板發生變化,用戶需要在重新創建之前刪除數據庫中的表格。在實際項目中,把這個命令寫成:工程瀏覽器>命令語言>應用命令語言>啟動時,也就是系統開始運行時建立數據庫表。
插入記錄
1.在數據庫操作界面添加壹個按鈕,文本為:插入記錄。
2.在按鈕彈出事件中輸入以下命令語言,如圖9-6所示:
圖9-6插入記錄命令語言
上面命令語言的作用是在表KingTable中插入壹條新記錄。
按下該按鈕後,組態王會將bind1中關聯的組態王變量的當前值插入到Access數據庫表“KingTable”中生成壹條記錄,從而達到將組態王數據寫入外部數據庫的目的。
查詢記錄
如果用戶需要將數據庫中的數據轉移到組態王中顯示,則需要另外創建壹個記錄體,記錄體的字段名要與數據庫表中的字段名壹致,連接的變量要與數據庫中的字段類型壹致。操作過程如下:
1.在項目瀏覽器窗口的數據字典中定義三個內存變量:
變量名:記錄日期
變量類型:內存字符串
初始值:空
變量名:記錄時間
變量類型:內存字符串
初始值:空
c變量名:原始油位的返回值
變量類型:內存實型
初始值:0
2.創建壹個名為數據庫查詢屏幕的新屏幕。
3.在工具箱中選擇工具,並在屏幕上輸入文本:database query。
4.在屏幕上增加三個文本框,分別連接文本框“字符串輸出”和“模擬量輸出”動畫中的變量\ \本站\記錄日期\ \本站\記錄時間\ \本站\原始油位返回值,顯示查詢結果。
5.在項目瀏覽窗口中定義壹條記錄,記錄窗口的屬性設置如圖9-7所示:
圖9-7記錄屬性設置對話框
6.在屏幕上添加壹個按鈕,文本為:Get Selection Set。
7.在按鈕彈出事件中輸入以下命令語言,如圖9-8所示:
圖9-8記錄查詢命令語言對話框
該命令語言的作用是按照記錄體Bind2中定義的格式返回KingTable表中的第壹條數據記錄。
8.單擊“文件”菜單上的“全部保存”保存您的設置。
9.點擊“文件”菜單中的“切換到視圖”命令,進入運行系統。運行此屏幕,單擊“獲取選擇集”按鈕,數據庫中的數據記錄將顯示在文本框中,如圖9-9所示:
圖9-9數據庫記錄查詢
10.在屏幕上添加四個按鈕。按鈕屬性設置如下:
按鈕文本:第壹條記錄
“彈出”動畫連接:SQL first(device id);
b按鈕文本:下壹條記錄
“彈出”動畫連接:SQLNext(device id);
c按鈕文本:上壹條記錄
“彈出”動畫連接:SQLPrev(device id);
d按鈕文本:最後壹條記錄
“彈出時間”動畫連接:SQL last(device id);
上述命令語言的作用是分別查詢數據中的第壹條記錄、下壹條記錄、上壹條記錄和最後壹條記錄,從而達到數據查詢的目的。
拆開
1.在“數據庫操作屏幕”中添加壹個按鈕,文本為:斷開數據庫。
2.在按鈕的彈出事件中輸入如下命令語言,如圖9-10所示:
圖9-10數據庫斷開命令語言
在實際項目中,把這個命令寫成:工程瀏覽器>命令語言>應用命令語言>退出時間,即系統退出後斷開與數據庫的連接。
第三節數據庫查詢控制
利用組態王提供的KVADODBGrid類控件,可以輕松實現數據庫查詢,操作過程如下:
1.單擊工具箱中的插入通用控件工具或選擇菜單命令編輯\插入通用控件打開控件對話框。在控件對話框中選擇“KVADODBGrid類”選項,如圖9-11所示:
圖9-11通用控制對話框
2.在屏幕上添加壹個KVADODBGrid類控件,選中並雙擊該控件,在彈出的動畫連接屬性對話框中設置控件名稱為:grid1。
3.選擇壹個控件,單擊鼠標右鍵,在彈出的下拉菜單中執行“控件屬性”命令,彈出屬性對話框,如圖9-12所示:
圖9-12控件屬性對話框
在窗口中點擊瀏覽,在彈出的數據源選擇對話框中選擇之前創建的礦山數據源。此時,連接到該數據源的數據庫中的所有表都顯示在表名下拉框中,選擇要查詢的數據庫表(這裏我們選擇的是之前建立的KingTable表)。該表中建立的所有字段都會顯示在有效字段中,您可以使用並選擇要查詢的字段名稱並傳遞標題。
4.設置完成後關閉此對話框,使用按鈕的命令語言實現數據庫查詢和打印。這些設置如下:
按鈕1:查詢所有記錄:
grid1。fetch data();
grid1。FetchEnd();
按鈕2:條件查詢:
長aa;
aa= grid1。query dialog();
if (aa==1)
{
grid1。fetch data();
grid1。FetchEnd();
}
按鈕3:打印控制:
grid1。print();
按鈕4:保存:(將控件查詢的數據保存到指定路徑,後綴為CSV)
grid1。SaveToCSV("d:\peixun\data。CSV”);
您設置的變量是否記錄在數據庫中並添加到歷史曲線控制中?