中文圖形化數(shù)據(jù)庫動態(tài)操縱的實現(xiàn)_第1頁
中文圖形化數(shù)據(jù)庫動態(tài)操縱的實現(xiàn)_第2頁
中文圖形化數(shù)據(jù)庫動態(tài)操縱的實現(xiàn)_第3頁
中文圖形化數(shù)據(jù)庫動態(tài)操縱的實現(xiàn)_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、中文圖形化數(shù)據(jù)庫動態(tài)操縱的實現(xiàn)    cellSpacing=0 cellPadding=0 width="93%" border=0>cellSpacing=0 cellPadding=0 width="99%" border=0>【摘要】介紹了采用PowerBuider開發(fā)工具編程,實現(xiàn)數(shù)據(jù)庫動態(tài)操縱(查詢、插入、修改、刪除)的設(shè)計思路和方法,該程序具有中文圖形界面的突出特點?!娟P(guān)鍵詞】數(shù)據(jù)庫,動態(tài)操縱,PowerBuilder,中文,圖形界面 The Implementation of Datab

2、ase Dynamic Manipulation with Chinese Graphical User Interface.Liang Lunfa (The Library of Beijing University of Posts & Telecommunications, Beijing)【Abstract】This paper presents a method to implementing Database Dynamic Manipulation(query,insert,update,delete) by using PowerBuilder;this program

3、 has distinct characters which can supply chinese graphical user interface.【Keywords】Database, Dynamic manipulation, PowerBuilder, Chinese , Graphical User Interface1序言數(shù)據(jù)庫操縱包含查詢(select)、增加(Insert)、更改(update)和刪除(delete)四種操作。要實現(xiàn)對數(shù)據(jù)庫的操縱,必須鍵入類似于select (表序列)、 from (列序列)、 where (條件表達式序列)之類的SQL語句,這需要操作員對SQ

4、L語句以及數(shù)據(jù)庫結(jié)構(gòu)有充分的了解。是否可以在我們開發(fā)的各系統(tǒng)的數(shù)據(jù)庫管理中不需這樣麻煩,而只要點擊幾下鼠標就能完成對數(shù)據(jù)庫的操縱呢?這就是“中文圖形化數(shù)據(jù)庫動態(tài)操縱”的出發(fā)點。PowerBuilder是一個面向?qū)ο蟮挠糜跇?gòu)造基于客戶/服務器(Client/Server)數(shù)據(jù)庫應用系統(tǒng)的開發(fā)工具,具有強大的數(shù)據(jù)庫應用程序開發(fā)功能,尤其是它提供的數(shù)據(jù)窗口(Data Window)專利工具,使其能夠更加方便有效地訪問與操縱數(shù)據(jù)庫。實現(xiàn)本文所述功能的總體思路是:充分利用PowerBuilder數(shù)據(jù)窗口技術(shù),在數(shù)據(jù)窗口中使英文字符和中文說明相對應,通過執(zhí)行由操作數(shù)據(jù)窗口動態(tài)生成的SQL字符串,實現(xiàn)數(shù)據(jù)的

5、中文圖形化動態(tài)操縱功能。筆者在開發(fā)“中圖博覽會業(yè)務管理系統(tǒng)”時,對其數(shù)據(jù)操縱的功能實現(xiàn)作了比較深入的研究,采用PowerBuilder6.5為開發(fā)工具,在UNIX操作系統(tǒng)和Sybase 11數(shù)據(jù)庫系統(tǒng)環(huán)境下開發(fā)出了一個具有中文圖形界面、可以實現(xiàn)數(shù)據(jù)庫動態(tài)操縱功能的系統(tǒng)模塊。通過該模塊提供的數(shù)據(jù)庫操作方法,數(shù)據(jù)庫管理人員可高效方便地進行數(shù)據(jù)操縱。本文將以該開發(fā)環(huán)境為例對實現(xiàn)數(shù)據(jù)庫動態(tài)操縱功能的設(shè)計思路和關(guān)鍵技術(shù)作扼要的敘述。2. 功能分析 典型的SQL語句的結(jié)構(gòu)簡單列舉如下:(1) 查詢:SELECT目標列FROM目標表WHERE條件表達式(2) 插入:INSERT INTO目標表(目標列) V

6、ALUES (目標列賦值)(3) 更新:UPDATE 目標表 SET(目標列=賦值)序列WHERE 條件表達式(4) 刪除:DELETE FROM 目標表WHER條件表達式通過分析,從上面四種操作中抽象出四個公共元素,即:目標表、目標列、賦值和條件表達式,這四個元素可以在程序中用字符串代替。因此可以設(shè)計4個數(shù)據(jù)窗口,一個放要操縱的數(shù)據(jù)表,一個放數(shù)據(jù)列,一個放關(guān)系運算的檢索條件,一個放賦值列。在程序中利用數(shù)據(jù)窗口靈活的數(shù)據(jù)控制功能,通過鼠標點擊選擇相關(guān)的數(shù)據(jù),動態(tài)生成SQL語句。我們認為實現(xiàn)該功能主要有以下關(guān)鍵技術(shù):(1)操作界面的中文化;(2)條件表達式的構(gòu)建;(3)要運行字符串格式的SQL語

7、句,必須在字符串中考慮數(shù)值類型的轉(zhuǎn)換;(4)執(zhí)行查詢操作后動態(tài)顯示查詢結(jié)果。3設(shè)計思路針對上面提到的關(guān)鍵技術(shù),下面提出具體的設(shè)計實現(xiàn)思路:(1)采用PowerBuilder工具建立數(shù)據(jù)表的時候,可以對數(shù)據(jù)表和列進行說明,這些說明可采用簡明的中文。數(shù)據(jù)表創(chuàng)建完成以后,PowerBuilder的系統(tǒng)表pbcattbl、pbcatcol和syscolumn分別記錄了我們建立的表和列的各種信息,包括表和列的說明、列類型。我們每建立一個表,系統(tǒng)就在pbcattbl增加一條記錄,在pbcatcol、syscolumn增加對應于表的列數(shù)的多條記錄。這樣,我們就可以利用這些特性來實現(xiàn)中文圖形化的功能。(2)通

8、過分析where子句的結(jié)構(gòu),我們可以抽象出該數(shù)據(jù)窗口應該包括以下的內(nèi)容:“序號”+“左括號”+“名稱”+“比較符”+“條件”+“右括號”+“邏輯符(如有多行條件)”,因此可以設(shè)計一個數(shù)據(jù)窗口對象,使它包含如上的七列,其中“左括號”、 “比較符”、“右括號”、“邏輯符”等內(nèi)容是固定的,編輯屬性可以是下拉列表控件,而“名稱”和“條件”要隨選擇的表和行的不同而不同,編輯屬性必須是下拉數(shù)據(jù)窗口控件。(3)PowerBuilder可以運行嵌入SQL語句,其語法是:EXECUTE IMMEDIATE :string;因此可以將要執(zhí)行的操作內(nèi)容動態(tài)生成string,但是如果要插入或修改某些數(shù)據(jù)類型并不是ch

9、ar、varchar或text類型的列時,就要將string 類型的數(shù)據(jù)轉(zhuǎn)換為相應的數(shù)據(jù)類型,如在Sybase 11數(shù)據(jù)庫系統(tǒng)環(huán)境下,可調(diào)用convert()函數(shù)進行轉(zhuǎn)換;如在DB2環(huán)境下,可調(diào)用cast()函數(shù)。(4)如果執(zhí)行查詢操作,應該將查詢的結(jié)果顯示出來,該查詢結(jié)果會因選擇的表、列和條件的不同而完全不同,因此可以調(diào)用syntaxfromsq1(sq1ca,str,strsty,error)函數(shù)和datawindow.create()函數(shù),動態(tài)生成結(jié)果數(shù)據(jù)窗口。4實現(xiàn)步驟(1)創(chuàng)建系統(tǒng)操縱數(shù)據(jù)表在建立數(shù)據(jù)表時,將表和各列的表頭(Header)信息完整地用中文輸入。讀取系統(tǒng)表的相關(guān)數(shù)據(jù):p

10、bcattal中的Pbt_Tnam(表名)、Pbc_cmnt(表說明)字段,用數(shù)據(jù)管道工具傳入到一個新表Sys_table表中,讀取系統(tǒng)表pbcatcol中的Pbc_tname(表名)、Pbc_cnam(列名)、Pbc_Hdr(列說明)字段,用數(shù)據(jù)管道工具傳入到一個新表Sys_column表中,并在Temp_column表中增加Pbc_sequence(列序號)、Pbc_Type(列類型)兩個字段,以記錄某列在表中的位置和類型。(2)創(chuàng)建數(shù)據(jù)窗口(Datawindow)對象數(shù)據(jù)表數(shù)據(jù)窗口d_table用來選擇表,由Sys_table中的table_tnam和table_cmnt字段構(gòu)成,只顯示

11、table_cmnt(表說明)列。數(shù)據(jù)列數(shù)據(jù)窗口d_column用來選擇所選表中的列,由Sys_column中的col_tname、col_cnam、col_sequence、col_Hdr、col_type字段構(gòu)成,并且實際只要顯示col_Hdr(列說明)列,以col_table、col_sequence排序。條件數(shù)據(jù)窗口d_where構(gòu)成動態(tài)SQL字符串的where子句,它是SQL字符串的關(guān)鍵。該數(shù)據(jù)窗口包括以下的七部分:“序號”+“左括號”+“名稱”+“比較符”+“條件”+“右括號”+“邏輯符”?!懊Q”的Edit屬性為下拉數(shù)據(jù)窗口(DropDownDW),數(shù)據(jù)窗口選擇d_column,

12、顯示col_Hdr(列說明);“條件”的Edit屬性中除選中Allow Editing(允許編輯)屬性外,其余和“名稱”完全一樣;“比較符”、“邏輯符”、 “左括號”和“右括號”的Edit屬性設(shè)置均可設(shè)置為下拉列表(DropDownListView),具體內(nèi)容就不詳細介紹了。賦值數(shù)據(jù)窗口d_value的功能是:當要執(zhí)行“插入(insert)”或“更新(update)”操作時,接收操作員輸入的數(shù)值。該數(shù)據(jù)窗口可以直接用字符串“col_cnam”、“col _Hdr”、“col_value”構(gòu)成。(3)創(chuàng)建窗口對象并編碼創(chuàng)建三個窗口(圖略)。窗口w_choice用來選擇執(zhí)行的操作,上面放置4個單選

13、按鈕;窗口w_process用來進行數(shù)據(jù)表、列、條件和賦值的操作,窗口上主要放置有4個數(shù)據(jù)窗口控件,控件名(數(shù)據(jù)窗口對象)分別為dw_table(d_table),dw_column(d_column),dw_where(d_where),dw_value(d_value),還有一個執(zhí)行操作的按鈕(bt_submit);窗口w_query用來顯示查詢操作的結(jié)果,主要有一個數(shù)據(jù)窗口控件,該控件的數(shù)據(jù)窗口是由查詢操作動態(tài)生成的。W_choice的功能相對簡單,只要向w_process傳遞一個string類型的參數(shù)就可以了。W_process接收w_choice傳來的參數(shù),在open事件中對w_pr

14、ocess做相應的處理。例如當接收的參數(shù)值為“query”(代表執(zhí)行查詢)時,該窗口的操作按鈕顯示為“執(zhí)行查詢”,并使賦值數(shù)據(jù)窗口(dw_value)的enabled屬性為“假”;當接收的參數(shù)為“insert”(代表執(zhí)行插入)時,該窗口的操作按鈕顯示為“執(zhí)行插入”,并使條件表達式數(shù)據(jù)窗口(dw_where)的enabled屬性為“假”。窗口內(nèi)bt_submit(執(zhí)行操作)按鈕Clicked事件通過檢查該按鈕上顯示的字符判斷要執(zhí)行的操作,同時運行SQL語句。如果執(zhí)行的操作是“查詢”,則將SQL語句作為參數(shù)傳遞給W_query窗口,如果是其他的操作,則直接調(diào)用EXECUTE IMMEDIATE :string語句,完成對數(shù)據(jù)庫的操縱功能。W_query接收W_process窗口傳來的參數(shù),調(diào)用數(shù)據(jù)窗口動態(tài)生成函數(shù)顯示查詢結(jié)果。5. 結(jié)論 本文介紹了采用PowerBuilder開發(fā)工具編程實現(xiàn)數(shù)據(jù)庫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論