資源描述:
《第16章數(shù)據(jù)窗口控件ppt課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)庫管理系統(tǒng)西南交通大學(xué)交通運(yùn)輸與物流學(xué)院第十六章數(shù)據(jù)窗口控件數(shù)據(jù)窗口控件是應(yīng)用程序在窗口中展示數(shù)據(jù)窗口對象的唯一途徑,數(shù)據(jù)窗口控件與數(shù)據(jù)窗口對象的結(jié)合構(gòu)成了應(yīng)用程序訪問和操作數(shù)據(jù)庫數(shù)據(jù)的主要手段。兩者的結(jié)合在提供強(qiáng)大功能的同時,不可避免地也帶來了非常大的復(fù)雜性。與其它PowerBuilder對象一樣,數(shù)據(jù)窗口控件也有一組屬性、事件和函數(shù),不過它們的數(shù)量相當(dāng)龐大,掌握起來有一定的難度。數(shù)據(jù)窗口對象常用屬性可以通過數(shù)據(jù)窗口控件的對象函數(shù)來訪問,使用屬性表達(dá)式,應(yīng)用程序幾乎可以操縱數(shù)據(jù)窗口的所有屬性。數(shù)據(jù)
2、窗口控件與其它控件(比如單選鈕、復(fù)選框、單行/多行編輯框、各種列表框等)一樣,是附屬于窗口的一個對象,它像座橋梁一樣把窗口和數(shù)據(jù)窗口對象聯(lián)系起來。通過數(shù)據(jù)窗口控件,程序能夠顯示、修改、控制數(shù)據(jù)窗口對象,并且響應(yīng)用戶的操作。數(shù)據(jù)窗口控件功能十分強(qiáng)大,具有眾多的事件、屬性和函數(shù)。數(shù)據(jù)窗口的屬性、事件和函數(shù)是靈活運(yùn)用數(shù)據(jù)窗口的基礎(chǔ),我們在這一章的內(nèi)容中主要學(xué)習(xí)數(shù)據(jù)窗口控件使用方法(事件、屬性、函數(shù))。一、運(yùn)用數(shù)據(jù)窗口的一般步驟無論用PowerBuilder開發(fā)何種數(shù)據(jù)庫應(yīng)用程序,在應(yīng)用程序中運(yùn)用數(shù)據(jù)窗口的一般
3、方法都是相似的,基本步驟為:1、使用數(shù)據(jù)窗口畫筆創(chuàng)建數(shù)據(jù)窗口對象;2、在窗口上放置數(shù)據(jù)窗口控件;3、通過屬性設(shè)置或編碼將數(shù)據(jù)窗口控件與數(shù)據(jù)窗口對象聯(lián)系起來;dw_1.dataobject=”d_student”4、設(shè)置數(shù)據(jù)窗口控件的屬性,以控制它的外觀和行為;5、將數(shù)據(jù)窗口控件與事務(wù)對象聯(lián)系起來(使用數(shù)據(jù)窗口控件的對象函數(shù)SetTransObject()或SetTrans());即將數(shù)據(jù)窗口和數(shù)據(jù)庫連接起來。6、從數(shù)據(jù)庫中讀數(shù)據(jù):使用數(shù)據(jù)窗口控件的對象函數(shù)Retrieve()把數(shù)據(jù)庫中的數(shù)據(jù)裝入數(shù)據(jù)窗口
4、中;7、編寫某些數(shù)據(jù)窗口控件事件的事件處理程序,響應(yīng)用戶的操作;8、保存數(shù)據(jù):需要時使用數(shù)據(jù)窗口控件的對象函數(shù)Update()保存用戶對數(shù)據(jù)的修改。16.1數(shù)據(jù)窗口中操縱數(shù)據(jù)當(dāng)使用數(shù)據(jù)窗口控件的Retrieve()函數(shù)從數(shù)據(jù)庫中提取數(shù)據(jù)后,數(shù)據(jù)被存入了數(shù)據(jù)窗口的緩沖區(qū)中,程序?qū)?shù)據(jù)窗口中數(shù)據(jù)的操作均在緩沖區(qū)中完成。用戶在向數(shù)據(jù)窗口中輸入數(shù)據(jù)時,他并沒有直接把數(shù)據(jù)輸入到數(shù)據(jù)窗口的緩沖區(qū)中,而是把數(shù)據(jù)輸入到懸浮在數(shù)據(jù)窗口當(dāng)前單元上面的編輯控件中,當(dāng)用戶移動了輸入焦點或代碼中使用AcceptText()函數(shù)操
5、作之后,系統(tǒng)驗證輸入數(shù)據(jù)的有效性,通過有效性驗證的數(shù)據(jù)才被放置到數(shù)據(jù)窗口控件的緩沖區(qū)中。下面介紹數(shù)據(jù)窗口控件緩沖區(qū)和編輯控件的相關(guān)知識。DATAWINDOW的四個緩站區(qū)在PowerBuilder中,DataWindow是用戶前端用來存儲、操縱數(shù)據(jù)的對象。在每一個DataWindow對象中有4個數(shù)據(jù)緩沖區(qū),用來存儲查詢到的數(shù)據(jù)。用戶在DataWindow中對數(shù)據(jù)處理系統(tǒng)內(nèi)部的操作實際上都是將數(shù)據(jù)在這幾個緩沖區(qū)中進(jìn)行的修改和移動,最后在用戶提交數(shù)據(jù)庫時,系統(tǒng)根據(jù)這四個緩沖區(qū)中的信息形成SQL的IN-SERT
6、,UPDATE,DELETE等語句。這四個緩沖區(qū)是:PrimaryBuffer(主緩沖區(qū))這個緩沖區(qū)是存放填充窗口中DataWindow控件中數(shù)據(jù)的,調(diào)用DataWindow的Retrieve()函數(shù)和InsertRow()函數(shù)可以將數(shù)據(jù)填入這個緩沖區(qū)中。當(dāng)使用有關(guān)DataWindow刪除和過濾函數(shù)時,相應(yīng)記錄將從這一緩沖區(qū)中刪除。而在執(zhí)行DataWindow的Update()函數(shù)時,PowerBuilder將查看這一緩沖區(qū)中的記錄,以形成SQLINSERT和UPDATE語句。DeleteBuffer(
7、刪除緩沖區(qū))這個緩沖區(qū)保存的是從主緩沖區(qū)中刪除的記錄,執(zhí)行Update()函數(shù)時,系統(tǒng)根據(jù)這一緩沖區(qū)的記錄形成DELETE語句。FilterBuffer(過濾緩沖區(qū))這個緩沖區(qū)存儲的是不滿足過濾條件的數(shù)據(jù)。OriginalBuffer(原始緩沖區(qū))這一緩沖區(qū)存儲的是DataWindow從數(shù)據(jù)庫中讀到的(執(zhí)行retrieve()函數(shù)時得到的)全部記錄。當(dāng)保存數(shù)據(jù)數(shù)據(jù)庫時,根據(jù)主緩沖區(qū)生成的UPDATE語句和根據(jù)刪除緩沖區(qū)生成的DELETE語句都要依據(jù)這一緩沖區(qū)來構(gòu)造這些SQL語句中的Where子句。原始緩
8、沖區(qū)由PowerBuilder內(nèi)部維護(hù),Power-Builder所提供的任何函數(shù)都無法改變它的值。二、編輯控件使用數(shù)據(jù)窗口控件時,需要理解的最重要概念之一是編輯控件(EditControl)。請注意,這里講述的編輯控件不是放置在窗口上的編輯框。當(dāng)數(shù)據(jù)窗口中的列可以編輯時,系統(tǒng)自動創(chuàng)建一個編輯控件“漂浮”在得到輸入焦點的可編輯項上,這個編輯控件沒有邊框,從外觀上我們只能看到插入指針在閃動。當(dāng)用戶按Tab鍵或通過單擊改變輸入焦點時,編輯控件隨