梁廣輝,胡良謀,唐鋒,胡飛,曹克強(qiáng)
(1.空軍工程大學(xué)航空航天工程學(xué)院,陜西西安710038;2.廣空裝備部外場(chǎng)處,廣東廣州510071)
飛機(jī)液壓系統(tǒng)擔(dān)負(fù)著飛機(jī)的特定操縱與驅(qū)動(dòng)任務(wù),對(duì)飛機(jī)安全正常飛行、實(shí)現(xiàn)設(shè)計(jì)性能及飛行員的生存保障,起著舉足輕重的作用[1]。因此研究飛機(jī)液壓系統(tǒng)的可靠性具有重要的現(xiàn)實(shí)意義。
飛機(jī)液壓系統(tǒng)在外場(chǎng)使用過(guò)程中的使用故障統(tǒng)計(jì)數(shù)據(jù)是其可靠性資料的主要來(lái)源。因?yàn)樵谑褂秒A段反映的使用及環(huán)境條件最真實(shí),參與評(píng)估的液壓系統(tǒng)及其附件數(shù)量較多,因此在該階段收集的使用故障(可靠性)數(shù)據(jù)極為珍貴,它能最真實(shí)地反映液壓系統(tǒng)及其附件的實(shí)際可靠性水平和薄弱環(huán)節(jié),對(duì)設(shè)計(jì)和制造的評(píng)價(jià)最權(quán)威。
為了記錄、有效管理和利用飛機(jī)液壓系統(tǒng)在外場(chǎng)使用過(guò)程中收集的使用故障統(tǒng)計(jì)數(shù)據(jù),建立先進(jìn)的數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)根本的解決方法。因此,如何設(shè)計(jì)開發(fā)出功能強(qiáng)大,人機(jī)界面友好,使用方便,高效,保密性好,可靠性高,現(xiàn)代化、自動(dòng)化及智能化水平高的飛機(jī)液壓系統(tǒng)使用故障數(shù)據(jù)庫(kù)系統(tǒng)就成為一項(xiàng)非常重要和迫切的研究課題。
PowerBuilder 是一款目前流行的、優(yōu)秀的快速交互式數(shù)據(jù)庫(kù)開發(fā)工具,具有高效快捷的完全可視化的集成開發(fā)環(huán)境、簡(jiǎn)潔友好的用戶界面、功能強(qiáng)大的數(shù)據(jù)窗口技術(shù)以及性能優(yōu)越的數(shù)據(jù)庫(kù)訪問能力,因此越來(lái)越受到眾多數(shù)據(jù)庫(kù)開發(fā)人員的青睞[2-5]。
文中應(yīng)用PowerBuilder 來(lái)設(shè)計(jì)開發(fā)飛機(jī)液壓系統(tǒng)使用故障數(shù)據(jù)庫(kù)系統(tǒng)的登錄界面,以提高數(shù)據(jù)庫(kù)系統(tǒng)的安全性。
設(shè)計(jì)任務(wù)為:設(shè)計(jì)一個(gè)適用于飛機(jī)液壓系統(tǒng)使用故障數(shù)據(jù)庫(kù)系統(tǒng)的登錄界面,用于數(shù)據(jù)庫(kù)系統(tǒng)的安全管理。
(1)開發(fā)軟件:PowerBuilder 9.0 及其自帶的后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)ASA(Adaptive Server Anywhere 8.0);
(2)數(shù)據(jù)庫(kù)系統(tǒng)只需實(shí)現(xiàn)單機(jī)版功能;
(3)登錄界面上只需輸入登錄密碼就可以登錄數(shù)據(jù)庫(kù)系統(tǒng);
(4)數(shù)據(jù)庫(kù)系統(tǒng)中有修改登錄密碼的功能。
為了能夠修改登錄密碼,首先必須要設(shè)計(jì)一個(gè)本地?cái)?shù)據(jù)庫(kù),用于存儲(chǔ)登錄密碼和保存登錄密碼修改結(jié)果。
采用ASA 創(chuàng)建登錄密碼數(shù)據(jù)庫(kù)。
采用PowerBuilder 創(chuàng)建本地ASA 數(shù)據(jù)庫(kù)有以下7個(gè)步驟:
(1)數(shù)據(jù)表的結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)表[2-5]是數(shù)據(jù)庫(kù)中用于存儲(chǔ)數(shù)據(jù)的基本單元。數(shù)據(jù)表是一張二維關(guān)系表,定義了數(shù)據(jù)表結(jié)構(gòu),由若干行和列(Column,習(xí)慣上也稱為字段)組成。表中的每一行都代表一條記錄,而每條記錄又是由多個(gè)列組成的。
根據(jù)實(shí)際需求,定義的登錄密碼數(shù)據(jù)表(Password)的結(jié)構(gòu)如表1所示。其中,“密碼”字段的寬度為20,表示最多可設(shè)置20 位的登錄密碼。

表1 password 數(shù)據(jù)表的結(jié)構(gòu)
(2)創(chuàng)建本地ASA 數(shù)據(jù)庫(kù)
利用數(shù)據(jù)庫(kù)畫板可創(chuàng)建一個(gè)ASA 數(shù)據(jù)庫(kù)。
具體方法為:在PowerBuilder 中單擊工具欄中的“”(Database)圖標(biāo),打開“Database”窗口,并展開“Database”窗口左側(cè)樹狀列表中的“ODB ODBC Utilities”項(xiàng);再雙擊“Create ASA Database”項(xiàng),打開“Create Adaptive Server Anywhere Database”窗口,需要在該窗口配置數(shù)據(jù)庫(kù)的屬性(在“User ID”文本框中輸入用戶名,默認(rèn)值為“DBA”;在“Password”文本框中輸入密碼,默認(rèn)值為“SQL”;在“Database Name”文本框中輸入要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)的名稱和路徑,這里為“E: 數(shù)據(jù)庫(kù)程序 fault_database password_db.db”;在“Log Name”文本框中輸入日志文件的名稱,為“password_db.log”;在“Page Size”項(xiàng)中可選擇頁(yè)面大小)。配置完成后,單擊“OK”按鈕,PowerBuilder 會(huì)自動(dòng)完成本地ASA數(shù)據(jù)庫(kù)的創(chuàng)建工作。最后,在“Database”窗口的左側(cè)樹狀列表中的“ODB ODBC”項(xiàng)的下面增加了一項(xiàng)“Password Db”,并且它的圖標(biāo)上出現(xiàn)了一個(gè)符號(hào)“√”,表明數(shù)據(jù)庫(kù)“password_db.db”已經(jīng)成功連接到當(dāng)前的PowerBuilder 開發(fā)環(huán)境中了,如圖1所示。

圖1 數(shù)據(jù)庫(kù)創(chuàng)建及連接成功界面
(3)創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)
根據(jù)前面定義的數(shù)據(jù)表的結(jié)構(gòu)設(shè)計(jì)結(jié)果,利用數(shù)據(jù)庫(kù)畫板創(chuàng)建數(shù)據(jù)表。
具體方法為:在圖1 中,選中“ODB ODBC Password Db Tables”項(xiàng),右擊鼠標(biāo),在彈出的快捷菜單中選中“New Table”命令,在數(shù)據(jù)庫(kù)工作區(qū)的底部出現(xiàn)數(shù)據(jù)表的結(jié)構(gòu)定義界面,按照表1所示的結(jié)構(gòu)輸入所有字段的項(xiàng)目,如圖2所示。最后保存結(jié)果,并將數(shù)據(jù)表的名稱保存為“password”。

圖2 數(shù)據(jù)表“password”的結(jié)構(gòu)定義界面
(4)定義主鍵
數(shù)據(jù)表的主鍵(Primary Key)是唯一標(biāo)識(shí)每一行數(shù)據(jù)的一列或若干列的集合[2-5]。利用數(shù)據(jù)庫(kù)畫板可定義主鍵。這里將“編號(hào)”字段設(shè)置為主鍵。
(5)定義索引
索引(Index)是在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)數(shù)據(jù)表中數(shù)據(jù)邏輯排序的有效方法[2-5]。
具體方法為:展開“ODB ODBC Password Db Tables password”目錄,選中“Indices”項(xiàng),右擊鼠標(biāo),在彈出的快捷菜單中選中“New Index…”命令,從而可打開索引屬性面板。在索引屬性面板的“General”選項(xiàng)卡上的“Index”文本框中輸入索引名稱“i_bh”,在“Column”選項(xiàng)框中選中“編號(hào)”復(fù)選框(打勾),即可完成索引的創(chuàng)建。
(6)定義外鍵
外鍵(Foreign Key)是指表中的一個(gè)或多個(gè)列與其他表中的主鍵建立的對(duì)應(yīng)關(guān)系[2-5]。這里不用定義外鍵。
(7)向數(shù)據(jù)表中錄入數(shù)據(jù)
在前面創(chuàng)建的數(shù)據(jù)表的基礎(chǔ)上,利用數(shù)據(jù)庫(kù)畫板可以向數(shù)據(jù)表中錄入數(shù)據(jù)。
具體方法為:首先選中數(shù)據(jù)表“password”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“Edit Data →Grid”命令,然后在數(shù)據(jù)庫(kù)工作區(qū)底部出現(xiàn)的“Results”視圖中,右擊鼠標(biāo),在彈出的快捷菜單中選擇“Insert Row”命令來(lái)錄入數(shù)據(jù)。最后,在“編號(hào)”列中輸入“1”;在“密碼”列中輸入初始密碼“123456”,如圖3所示。最后保存結(jié)果。

圖3 向數(shù)據(jù)表中錄入數(shù)據(jù)的界面
窗口(Window)是PowerBuilder 應(yīng)用程序的基本組成要素,是應(yīng)用程序與用戶進(jìn)行交互操作的平臺(tái)。用戶通過(guò)窗口向應(yīng)用程序提供必要的數(shù)據(jù),指示所需完成的工作;應(yīng)用程序則通過(guò)窗口顯示運(yùn)行狀態(tài)和執(zhí)行結(jié)果[2-5]。具體地說(shuō),應(yīng)用程序與用戶之間的交互活動(dòng)都需要通過(guò)窗口上的具體的各種類型的控件來(lái)完成。因此,窗口設(shè)計(jì)的主要工作就是決定窗口的類型和選用相關(guān)的窗口控件并合理布局,而且各種控件的布局、排列、色彩搭配等直接影響著系統(tǒng)的美觀。登錄界面就是通過(guò)窗口及其窗口控件來(lái)實(shí)現(xiàn)相應(yīng)的功能。
登錄界面的實(shí)際運(yùn)行效果如圖4所示。其中,為了實(shí)現(xiàn)在單行編輯框“sle_1”中輸入密碼時(shí),不顯示實(shí)際的輸入內(nèi)容,輸入的每個(gè)字符都用“* ”代替,需要在它的屬性面板中的“General”選項(xiàng)卡中選中“Password”選項(xiàng)(打勾)。

圖4 登錄界面

登錄密碼修改界面的實(shí)際運(yùn)行如圖5所示。

圖5 登錄密碼修改界面
在該界面,主要功能有:

圖6 登錄密碼修改成功提示框
(1)修改登錄密碼。首先在“輸入原密碼”文本框中輸入當(dāng)前密碼,在“輸入新密碼”文本框中輸入新密碼,在“確認(rèn)新密碼”文本框中將新密碼重新輸入一次,最后單擊“保存”按鈕保存新密碼的設(shè)置。登錄密碼修改成功的提示框如圖6所示。
(2)如果在“輸入原密碼”文本框中輸入數(shù)據(jù)庫(kù)系統(tǒng)的當(dāng)前密碼錯(cuò)誤時(shí),此時(shí)出現(xiàn)的提示框如圖7所示,單擊“確定”按鈕后,重新輸入。

圖7 輸入數(shù)據(jù)庫(kù)系統(tǒng)的當(dāng)前密碼錯(cuò)誤提示框
(3)當(dāng)“輸入新密碼”文本框中輸入的新密碼和“確認(rèn)新密碼”文本框中的確認(rèn)密碼不一致時(shí),此時(shí)出現(xiàn)的提示框如圖8所示,單擊“確定”按鈕后,重新輸入。

圖8 “新密碼和確認(rèn)密碼不一致”提示框
(1)“保存”命令按鈕的程序代碼


采用目前最為流行的、美國(guó)著名的數(shù)據(jù)庫(kù)開發(fā)工具PowerBuilder 設(shè)計(jì)開發(fā)了飛機(jī)液壓系統(tǒng)使用故障數(shù)據(jù)庫(kù)系統(tǒng)的登錄界面,具有界面友好、功能強(qiáng)大、使用方便、可擴(kuò)展性強(qiáng)、智能化水平高等優(yōu)點(diǎn),大大提高了數(shù)據(jù)庫(kù)系統(tǒng)的安全性水平。文中的研究工作為其他類型的數(shù)據(jù)庫(kù)系統(tǒng)登錄界面的設(shè)計(jì)開發(fā)提供了有意義的借鑒。
【1】王占林.飛機(jī)高壓液壓能源系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2004.
【2】郭新順.數(shù)據(jù)庫(kù)前臺(tái)開發(fā)環(huán)境[M].北京:清華大學(xué)出版社,2010.
【3】黃俊聯(lián),肖國(guó)強(qiáng).數(shù)據(jù)庫(kù)原理與應(yīng)用實(shí)驗(yàn)教程[M].2版.北京:國(guó)防工業(yè)出版社,2008.
【4】李華.PowerBuilder 程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2011.
【5】陳永強(qiáng).PowerBuilder 數(shù)據(jù)庫(kù)開發(fā)經(jīng)典實(shí)例精解[M].北京:機(jī)械工業(yè)出版社,2007.