




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)窗口常用函數(shù) 數(shù)據(jù)窗口控件事務(wù)對象1. SetTransObject函數(shù)函數(shù) 調(diào)用格式:調(diào)用格式:dwcontrol.SetTransObject(transaction) 其 中 :其 中 : d w c o n t r o 為 數(shù) 據(jù) 窗 口 控 件 的 名 稱 ;transaction為缺省的或 用戶定義的事務(wù)對象。 返返回值:回值:1-成功;-1-失敗。 SetTransObject函數(shù)為數(shù)據(jù)庫維持了一個開放性的連接,不需要反復(fù)連接和斷開數(shù)據(jù)庫,對數(shù)據(jù)窗口的更新進(jìn)行提交或滾回操縱。只有在用戶改變數(shù)據(jù)窗口對象或者用戶斷開與數(shù)據(jù)庫連接后,才要再次調(diào)用SetTransObject函數(shù)。
2、SetTransObject ()函數(shù)的特點是,在使用之前要求建立事務(wù)對象與數(shù)據(jù)庫的連接,一直保持這一連接,直到代碼執(zhí)行DISCONNECT語句后才斷開與數(shù)據(jù)庫的連接。它在檢索和更新數(shù)據(jù)時所花的時間只是檢索和更新所需的時間,效率上明顯高于SetTrans ()函數(shù)。例如,例如,在完成了數(shù)據(jù)庫的連接之后,如果在某個窗口中有個數(shù)據(jù)窗口控件dw_1,可以在窗口打開的open事件中,添加如下代碼: dw_1.SetTransObject(SQLCA) 此后,就可以使用其它函數(shù)訪問數(shù)據(jù)庫了。數(shù)據(jù)窗口控件事務(wù)對象 2. SetTrans函數(shù)函數(shù) 調(diào)用格式:調(diào)用格式:dwcontrol.SetTrans(t
3、ransaction) 參數(shù)及返回值與SetTransObject函數(shù)相同。不同點是SetTrans使用內(nèi)部事務(wù)對象,用戶不必先進(jìn)行數(shù)據(jù)庫的連接,而是每進(jìn)行一次數(shù)據(jù)庫操作,都會自動產(chǎn)生一個數(shù)據(jù)庫的連接,并在操作結(jié)束時自動斷開與數(shù)據(jù)庫的連接。每當(dāng)操作數(shù)據(jù)庫時,都會完成連接、操作、斷開數(shù)據(jù)庫這一系列步驟。 對絕大多數(shù)數(shù)據(jù)庫管理系統(tǒng)來說,CONNECT、DISCONNECT操作是件極為耗時的工作。如果應(yīng)用程序?qū)?shù)據(jù)庫操作頻繁,SetTrans需要花費的資源比較多,效率比較低。一般應(yīng)用在遠(yuǎn)端使用應(yīng)用程序或者對數(shù)據(jù)庫操作較少的場合。數(shù)據(jù)窗口控件的函數(shù) 數(shù)據(jù)窗口控件提供了豐富的對象函數(shù),這些函數(shù)在增強數(shù)據(jù)
4、窗口功能的同時,也方便了應(yīng)用程序的開發(fā),加快了開發(fā)進(jìn)度。 數(shù)據(jù)窗口函數(shù)編程注意事項:數(shù)據(jù)窗口函數(shù)編程注意事項: 1. 窗口函數(shù)觸發(fā)數(shù)據(jù)窗口事件窗口函數(shù)觸發(fā)數(shù)據(jù)窗口事件 窗口函數(shù)會觸發(fā)某些數(shù)據(jù)窗口事件,如果在這些數(shù)據(jù)窗口事件中調(diào)用能夠觸發(fā)該事件的數(shù)據(jù)窗口函數(shù),就會造成死循環(huán)。2. PowerBuilder的數(shù)據(jù)處理機制的數(shù)據(jù)處理機制數(shù)據(jù)窗口在客戶機的本地內(nèi)存中開辟了四個緩沖區(qū):主緩沖區(qū)、刪除緩沖區(qū)、過濾緩沖區(qū)、原始緩沖區(qū),從數(shù)據(jù)庫中檢索到數(shù)據(jù)后,數(shù)據(jù)窗口根據(jù)不同情況把數(shù)據(jù)放置到不同的緩沖區(qū)。四個緩沖區(qū)各司其職,協(xié)作完成數(shù)據(jù)的增刪改,最后把結(jié)果提交給數(shù)據(jù)庫管理系統(tǒng)。n除了在數(shù)據(jù)窗口畫筆中可以定義數(shù)
5、據(jù)窗口對象外,還提供了根據(jù)SQL SELECT語句和指定的屬性動態(tài)創(chuàng)建數(shù)據(jù)窗口的能力,這樣,應(yīng)用程序就能夠構(gòu)造的更加靈活,以適應(yīng)千變?nèi)f化的用戶需求。7.4 數(shù)據(jù)窗口控件的函數(shù)n 當(dāng)使用數(shù)據(jù)窗口控件的Retrieve()函數(shù)從數(shù)據(jù)庫中提取數(shù)據(jù)后,數(shù)據(jù)被存入了數(shù)據(jù)窗口的主緩沖區(qū)中,程序?qū)?shù)據(jù)窗口中數(shù)據(jù)的操作均在緩沖區(qū)中完成。n用戶在向數(shù)據(jù)窗口中輸入數(shù)據(jù)時,并沒有直接把數(shù)據(jù)輸入到數(shù)據(jù)窗口的主緩沖區(qū)中,而是把數(shù)據(jù)輸入到懸浮在數(shù)據(jù)窗口當(dāng)前單元上面的編輯控件中 , 當(dāng) 用 戶 移 動 了 輸 入 焦 點 或 代 碼 中 使 用AcceptText ()函數(shù)操作之后,系統(tǒng)驗證輸入數(shù)據(jù)的有效性,通過有效性驗證
6、的數(shù)據(jù)才被放置到數(shù)據(jù)窗口控件的主緩沖區(qū)中。n當(dāng)插入數(shù)據(jù)時,插入的數(shù)據(jù)也存放在主緩沖區(qū)。當(dāng)刪除數(shù)據(jù)行時,不管是使用DeleteRow()函數(shù)直接刪除一行還是使用RowsMove()函數(shù)在緩沖區(qū)之間移動數(shù)據(jù)行,被刪除數(shù)據(jù)行從主緩沖區(qū)移動到刪除緩沖區(qū)。n當(dāng)使用數(shù)據(jù)窗口控件的對象函數(shù)Update()將數(shù)據(jù)窗口的修改發(fā)送到數(shù)據(jù)庫管理系統(tǒng)后,被成功刪除的記錄均從刪除緩沖區(qū)中清除。在保存數(shù)據(jù)時,刪除緩沖區(qū)用于生成DELETE語句。過濾緩沖區(qū)用于保存那些滿足數(shù)據(jù)源定義,而不滿足過濾條件的行。n原始緩沖區(qū)保存數(shù)據(jù)窗口從數(shù)據(jù)庫中檢索出的原始數(shù)據(jù)。可以通過把GetItem簇函數(shù)的入口參數(shù)originalvalue設(shè)
7、置為true來訪問原始緩沖區(qū)中數(shù)據(jù)。7.4 數(shù)據(jù)窗口控件的函數(shù)數(shù)據(jù)窗口緩沖區(qū)之間的關(guān)系見圖。7.4 數(shù)據(jù)窗口控件的函數(shù)n 主緩沖區(qū)的記錄行數(shù)可以通過數(shù)據(jù)窗口控件的對象函數(shù)RowCount()得到,刪除緩沖區(qū)的記錄行 數(shù) 通 過 數(shù) 據(jù) 窗 口 控 件 的 對 象 函 數(shù)DeletedCount()得到,過濾緩沖區(qū)的記錄行數(shù)通過數(shù)據(jù)窗口控件的對象函數(shù)FilterCount()得到。n利用數(shù)據(jù)窗口控件的對象函數(shù)SetFilter(),可以動態(tài)改變過濾條件,然后使用數(shù)據(jù)窗口控件的對象函數(shù)Filter()更新主緩沖區(qū)和過濾緩沖區(qū)中的數(shù)據(jù)。數(shù)據(jù)窗口控件只顯示主緩沖區(qū)中的數(shù)據(jù),用戶的所有操作也都是針對主緩
8、沖區(qū)進(jìn)行的。n編輯狀態(tài)標(biāo)志在數(shù)據(jù)窗口控件的主緩沖區(qū)、過濾緩沖區(qū)和刪除緩沖區(qū)中,每一行和每一行中的每個列都有個編輯狀態(tài)標(biāo)志,這個標(biāo)志指示了相應(yīng)行是否是新增加的行、相應(yīng)列的數(shù)據(jù)是否被修改。在往數(shù)據(jù)庫中保存數(shù)據(jù)時,數(shù)據(jù)窗口利用這個標(biāo)志值來決定產(chǎn)生什么類型的SQL語句。n需要獲得某行/某列的編輯狀態(tài)標(biāo)志的方法是使用數(shù)據(jù)窗口控件的GetItemStatus ()對象函數(shù)。修改行或列的編輯狀態(tài)標(biāo)志的數(shù)據(jù)窗口控件對象函數(shù)是SetItemStatus()。 7.4 數(shù)據(jù)窗口控件的函數(shù) 編輯狀態(tài)標(biāo)志是個dwItemStatus枚舉類型。7.4 數(shù)據(jù)窗口控件的函數(shù)3. 訪問的緩沖區(qū)訪問的緩沖區(qū) dwBuffer用
9、來指定數(shù)據(jù)窗口控件函數(shù)訪問的緩沖區(qū),dwBuffer使用枚舉數(shù)據(jù)類型。 表表7-4 dwBuffer枚舉數(shù)據(jù)類型與指定的緩沖區(qū)枚舉數(shù)據(jù)類型與指定的緩沖區(qū)數(shù)據(jù)窗口常用函數(shù)nDwo.Reset() 重置數(shù)據(jù)窗口nInsertRow( )函數(shù)函數(shù)n用來在數(shù)據(jù)窗口的主緩沖區(qū)中插入一條新記錄。其語法格式為:nlong dwcontrol.InsertRow ( long row )n其中:row用于指定新行的插入位置。若row為0,則表示在所有記錄的最后插入新行。n例如:dw_1.InsertRow(0) 數(shù)據(jù)窗口常用函數(shù)nDeleteRow( )函數(shù) nDeleteRow函數(shù)用來在數(shù)據(jù)窗口的主緩沖區(qū)中
10、刪除一行。其語法格式為:ninteger dwcontrol.DeleteRow ( long row )n其中:row表示要刪除的行的行號。若row為0,則表示要刪除當(dāng)前行。n例如,語句:ndw_1.DeleteRow(5)n表示刪除數(shù)據(jù)窗口控件中的第5條記錄。數(shù)據(jù)窗口常用函數(shù)nUpdate( )函數(shù)nUpdate函數(shù)用來把數(shù)據(jù)窗口上數(shù)據(jù)的變化更新到數(shù)據(jù)庫中。nUpdate函數(shù)的語法格式為:ninteger dwcontrol.Update ( boolean accept , boolean resetflag )n其中:參數(shù)accept是一個布爾值,如果該值為true,表示在更新之前調(diào)用
11、AcceptText函數(shù)。參數(shù)resetflag用來確定數(shù)據(jù)窗口更新后是否重設(shè)更新標(biāo)記。n該函數(shù)執(zhí)行成功,則返回1,否則返回-1。n例如,在本書實例窗口w_ini的【保存】按鈕的Clicked事件代碼為:數(shù)據(jù)窗口常用函數(shù)nif dw_1.Update() 0 thenncommit; /提交nelsenmessagebox(,無法對數(shù)據(jù)保存!)nrollback; /返回nend ifn注釋:在調(diào)用注釋:在調(diào)用update函數(shù)后,必須做事務(wù)的函數(shù)后,必須做事務(wù)的管理工作,即使用管理工作,即使用SQL語句語句COMMIT或或ROLLBACK來結(jié)束更新操作。來結(jié)束更新操作。 數(shù)據(jù)窗口常用函數(shù)n連接
12、事務(wù)對象的函數(shù)nSettransobject()函數(shù)n參數(shù)為事務(wù)對象n例:dw_1. Settransobject(sqlca)n滾動數(shù)據(jù)行函數(shù)nScroll( )和ScrollToRow( )函數(shù) nlong dwcontrol.Scroll ( long number ) nnumber指定要滾動的方向和行數(shù)。number為正數(shù),表示向下滾動;若number為負(fù)數(shù),表示向上滾動。如果該函數(shù)執(zhí)行成功,那么將返回數(shù)據(jù)窗口控件中可見的第一行的行號;如果執(zhí)行失敗,則返回-1。 n滾動數(shù)據(jù)行函數(shù)nScrollToRow函數(shù) ninteger dwcontrol.ScrollToRow ( long
13、row )n參數(shù)row指定要滾動到的行號。如果row為0,則滾動到第一行,如果row大于最后一行的行號,則滾動到最后一行。該函數(shù)執(zhí)行成功,則返回值為1,否則,返回-1n注釋:調(diào)用注釋:調(diào)用ScrollToRoll函數(shù)后,指定的行變?yōu)楫?dāng)函數(shù)后,指定的行變?yōu)楫?dāng)前行,如果該行在數(shù)據(jù)窗口控件中已經(jīng)可見,則數(shù)前行,如果該行在數(shù)據(jù)窗口控件中已經(jīng)可見,則數(shù)據(jù)窗口控件中顯示的行沒有什么變化,否則,顯示據(jù)窗口控件中顯示的行沒有什么變化,否則,顯示這一行這一行nScrollToRoll函數(shù)和其他數(shù)據(jù)窗口滾動函數(shù)并不能函數(shù)和其他數(shù)據(jù)窗口滾動函數(shù)并不能高亮度顯示行。此時可使用高亮度顯示行。此時可使用SelectRow
14、函數(shù)高亮度函數(shù)高亮度顯示該行以使用戶知道這是當(dāng)前行。顯示該行以使用戶知道這是當(dāng)前行。nScrollToRow函數(shù)和其他數(shù)據(jù)窗口滾動函數(shù)可能觸函數(shù)和其他數(shù)據(jù)窗口滾動函數(shù)可能觸發(fā)下列事件:發(fā)下列事件:ItemChanged、ItemError、ItemFocusChanged、RowFocusChanged。 nScrollNextRow( )和ScrollPriorRow( )函數(shù)nlong dwcontrol.ScrollNextRow ( )nlong dwcontrol.ScrollPriorRow ( )n作用:向上或向下滾動一行nScrollNextPage( )和ScrollPrio
15、rPage( )函數(shù)nlong dwcontrol.ScrollNextPage( )nlong dwcontrol.ScrollPriorPage( )n作用:向上或向下滾動一頁 使當(dāng)前記錄亮度顯示nSelectrow()函數(shù)ninteger dwcontrol.SelectRow ( long, boolean )n參數(shù)long型表示行號,行號為0表示對所有行進(jìn)行操作。boolean型:true表示稿亮度顯示,false表示去掉亮度顯示。n例:Dw_1.selectrow(dw_1.getrow(),true)表示將當(dāng)前行亮度顯示nRetrieve()函數(shù)nRetrieve函數(shù)的功能是用指
16、定的事務(wù)對象從數(shù)據(jù)庫中把數(shù)據(jù)檢索到數(shù)據(jù)窗口進(jìn)行顯示。nRetrieve函數(shù)的語法格式為:nlong dwcontrol.Retrieve ( any argument, any argument . . . )n其中:argument是可選參數(shù),它表示在數(shù)據(jù)窗口對象中定義的檢索參數(shù),這些參數(shù)的順序必須和定義時的順序相同。n如果調(diào)用成功,則返回檢索出的記錄行數(shù);否則,返回-1。 nSetSort( )和Sort( )函數(shù) nSetSort( )函數(shù)設(shè)置排序條件nSort( )函數(shù)執(zhí)行排序操作ninteger dwcontrol.SetSort ( string format )n其中:參數(shù)for
17、mat是一個表示排序標(biāo)準(zhǔn)的字符串,包括列名或列號(列號前加#號)和排序順序(A表示升序、D表示降序)。如果format值為NULL,PowerBuilder將顯示“Specify Sort Columns”對話框,讓用戶選擇排序條件。該函數(shù)執(zhí)行成功時返回值為1,否則返回-1。nnumber dwcontrol.Sort ( )n該函數(shù)沒有參數(shù),執(zhí)行成功時返回值為1,否則返回-1。n例如,可使用如下代碼實現(xiàn)按第一列升序、第二列降序的順序排序:ndw_1.setSort(#1 A, #2 D)ndw_1.sort() nSetFilter( )和和Filter( )函數(shù)函數(shù)nSetFilter函數(shù)
18、用來在程序中動態(tài)改變數(shù)據(jù)窗口的過濾條件。修改之后,再用Filter函數(shù)過濾數(shù)據(jù)。integer dwcontrol.SetFilter ( string format )n其中:format是個字符串,其值是作為過濾條件的邏輯表達(dá)式,表達(dá)式中可以包含列名或列號。如果format值為NULL,PowerBuilder將顯示“Specify Filter”對話框,讓用戶輸入過濾條件。n該函數(shù)執(zhí)行成功時返回1,否則返回-1。integer dwcontrol.Filter ( )n例: dw_1.setfilter( xh= 0251101) dw_1.filter()可以實現(xiàn)過濾學(xué)號字段為0251
19、101學(xué)生的記錄nReset( )函數(shù)函數(shù)nReset函數(shù)可以清除數(shù)據(jù)窗口中的所有行。其語法格式為:ninteger dwcontrol.Reset ( )n若該函數(shù)執(zhí)行成功,則返回1,否則返回-1。n執(zhí)行Reset函數(shù)后再執(zhí)行Update( )函數(shù)并不會清除數(shù)據(jù)庫中的數(shù)據(jù),而刪除數(shù)據(jù)窗口的所有行后再執(zhí)行Update( )函數(shù)則會清除數(shù)據(jù)庫中的數(shù)據(jù)。 nFind()函數(shù)n查找滿足條件的記錄nnumber dwcontrol.Find ( string expression, number start, number end )nExpression:查找條件表達(dá)式nStart:起始行號nEnd
20、:結(jié)束行號n返回值:返回第一條滿足條件的記錄號0表示查找失敗,-1表示查找出錯例 i=dw_1.find( xh= 0251101,1,dw_1.rowcount()dw_1.scrolltorow(i)n查找和過濾的區(qū)別n查找和過濾都可以找到滿足條件的記錄,但是,find()的查找過程在主緩沖區(qū)中進(jìn)行,而Filter()將滿足條件的記錄過濾到過濾緩沖區(qū)。n得到與設(shè)置數(shù)據(jù)項的函數(shù)nSetItem函數(shù)n參數(shù):行號,列號,值n例如: dw_1.setitem(dw_1.getrow(),3,女)nGetItem函數(shù)nGetItemString、GetItemDateTime、GetItemTime
21、、GetItemNumber、GetItemDecimal。n 參數(shù):行號,列號n返回值:取得的對應(yīng)行、列的值數(shù)據(jù)窗口中數(shù)據(jù)處理n數(shù)據(jù)正確性檢查n數(shù)據(jù)排序、過濾、分組及去掉重復(fù)值n數(shù)據(jù)檢索引用數(shù)據(jù)窗口對象和數(shù)據(jù)窗口項n數(shù)據(jù)窗口對象的引用nDataobject屬性:指定數(shù)據(jù)窗口對象n例:dw_1.dataobject=d_no_namen通過表達(dá)式引用數(shù)據(jù)窗口項n通過列名引用ndwcontrol.Object.columnname.buffer.current.originalrownumberndwcontrol:數(shù)據(jù)窗口控件名稱。nObject:必選部分,用來指定一個數(shù)據(jù)窗口對象的數(shù)據(jù)值。n
22、Columnname:必選部分,用來指定要操作的數(shù)據(jù)窗口列名nBuffer:可選部分,指明要從哪個緩沖區(qū)中取得數(shù)據(jù),用戶可以在Primary(主緩沖區(qū))、Delete(刪除緩沖區(qū))或Filter(過濾緩沖區(qū))中選擇一個,默認(rèn)設(shè)置為Primary緩沖區(qū)。n .current.original:用來指明是從原始數(shù)據(jù)(從數(shù)據(jù)庫中檢索出來的數(shù)據(jù))還是從當(dāng)前緩沖區(qū)中取得數(shù)據(jù)。current為默認(rèn)設(shè)置,指當(dāng)前數(shù)據(jù)緩沖區(qū)。original指原始數(shù)據(jù)。nrownumber:可選字段,指定數(shù)據(jù)窗口的行號或者某一范圍。n例ndw_1.Object.number1= 9952101n語句把數(shù)據(jù)9952101賦值給主
23、緩沖區(qū)中的第一行的number列項:通過函數(shù)引用數(shù)據(jù)窗口項n取得數(shù)據(jù)窗口緩沖區(qū)中特定行列的數(shù)據(jù);nGetItemStringnGetItemDateTime、GetItemTime、GetItemNumber、GetItemDecimalnGetItem n設(shè)置數(shù)據(jù)窗口特定行列的數(shù)據(jù)值。nString dwcontrol.GetItemString (row,column ,dwbuffer,originalvalue )ndwcontrol:數(shù)據(jù)窗口控件的名字。nrow:指定要取得字符型數(shù)據(jù)項所在的行號。ncolumn:指定要取得字符型數(shù)據(jù)項所在的列,可以時列號(數(shù)值型)或列名(字符型)。n
24、dwbuffer:指明要從哪個緩沖區(qū)中取得數(shù)據(jù)。默認(rèn)設(shè)置是Primary緩沖區(qū)。noriginalvalue:用來指明是從原始數(shù)據(jù)還是從當(dāng)前緩沖區(qū)中取得數(shù)據(jù),True表示獲得從數(shù)據(jù)庫檢索出來的原始數(shù)據(jù);False(默認(rèn))表示獲得當(dāng)前緩沖區(qū)中的數(shù)據(jù)。 例nrownum=dw_1.getrow() /取得當(dāng)前行的行號nnum_no = dw_1.GetItemNumber (rownum,number) /取得當(dāng)前行、number列的值n設(shè)置數(shù)據(jù)窗口特定行列的數(shù)據(jù)值。設(shè)置數(shù)據(jù)窗口特定行列的數(shù)據(jù)值。nSetItem,其語法格式如下:ninteger dwcontrol.SetItem (row, c
25、olumn, value )nrow指定賦值項所在的行,ncolumn指賦值項所在的列,可以是列號或列名;nvalue是要為數(shù)據(jù)項設(shè)置的值。n例:nDw_1.setitem(dw_1.getrow(),sex,男)數(shù)據(jù)窗口的更新控制 n選擇菜單【Rows】【Update Properties】,彈出“Specify Update Properties” 設(shè)置更新屬性 多表數(shù)據(jù)窗口的更新n一般情況下,含有多表數(shù)據(jù)的數(shù)據(jù)窗口只能用于數(shù)據(jù)檢索,而不能用于更新數(shù)據(jù),所以,通常多表的更新操作通常使用多個數(shù)據(jù)窗口來實現(xiàn)(在腳本中要做數(shù)據(jù)庫的相關(guān)完整性檢查)。但有時也會遇到在一個數(shù)據(jù)窗口中更新多個表數(shù)據(jù)的情
26、況。n如果需要在單數(shù)據(jù)窗口中做多表更新,只能采用如下特殊的手段來解決:n第一,通過修改數(shù)據(jù)窗口的更新屬性實現(xiàn)多表更新;n第二,用隱含數(shù)據(jù)窗口(或數(shù)據(jù)存儲)實現(xiàn)多表更新。 n創(chuàng)建數(shù)據(jù)窗口:n(1)選用合適的數(shù)據(jù)源和顯示風(fēng)格,保證數(shù)據(jù)窗口具有更新能力。n(2)選取多表中的所需數(shù)據(jù)項(各表的主鍵和非空列一定要包含進(jìn)去)。n(3)修改所需數(shù)據(jù)項的TabOrder,保證其在數(shù)據(jù)窗口中是可修改的(TabOrder值不為0)。n(4)選取菜單【Rows】【Update Properties】,定義數(shù)據(jù)窗口的更新屬性(只定義一個表的列為可更新列)。 n保存操作:n(1)先對多表中的一個單表進(jìn)行更新,使用Mod
27、ify( )函數(shù)將其余表中的數(shù)據(jù)項的Update屬性改為False。n(2)選取單表的主鍵及表中其他數(shù)據(jù)項,設(shè)置此單表:nDataWindow.Table.UpdateTable=表名 /設(shè)置可更新的表名n表的主鍵.Key=Yes /設(shè)置可更新的主鍵n使用Modify( )函數(shù)將要更新表中的數(shù)據(jù)項的Update屬性改為True。n(3)使用Update( )函數(shù),對所選中的單表進(jìn)行更新。n(4)選取數(shù)據(jù)窗口中的其余表及其數(shù)據(jù)項,重復(fù)以上的操作來更新多表數(shù)據(jù)。n modify( ) modify( )函數(shù)的用法為:函數(shù)的用法為:nstring string dwcontrol.Modifydwc
28、ontrol.Modify ( string ( string modstringmodstring ) )n其參數(shù)是一個要設(shè)置的屬性值的字符串。不同的其參數(shù)是一個要設(shè)置的屬性值的字符串。不同的屬性之間可用屬性之間可用 t t或多個空格間隔,或多個空格間隔,n對數(shù)據(jù)窗口對象中列的屬性值的設(shè)置可以用如下對數(shù)據(jù)窗口對象中列的屬性值的設(shè)置可以用如下方式:方式:perty=value=value。n例如例如xshjbqk_name.Updatexshjbqk_name.Update =No =No表示將列表示將列xshjbqk_na
29、mexshjbqk_name的的updateupdate(更新)屬性改為更新)屬性改為NoNo,即即為不可更新。為不可更新。實例nlong ll_rtnn/ 修改Department表nll_rtn = dw_1.update(true, false)nif ll_rtn = 1 thenn/關(guān)掉對Department表的修改ndw_1.Modify(department_dept_name.Update = No)ndw_1.Modify(department_dept_id.Update = No)ndw_1.Modify(department_dept_id.Key = No)nn/使E
30、mployee表成為新的可修改表ndw_1.Modify(DataWindow.Table.UpdateTable = employee)ndw_1.Modify(employee_emp_id.Update = Yes)ndw_1.Modify(employee_emp_fname.Update = Yes)ndw_1.Modify(employee_emp_lname.Update = Yes)ndw_1.Modify(employee_emp_id.Key = Yes)n/修改Employee表nll_rtn = dw_1.Update()nIF ll_rtn = 1 THENnCOMM
31、IT USING SQLCA;ndw_1.retrieve()nmessagebox(提示信息,更新成功!)nELSEnROLLBACK USING SQLCA;nMessageBox(提示信息, 更新失敗!)nEND IFn/如果還要修改別的表,重設(shè)修改標(biāo)志ndw_1.Modify(department_dept_name.Update = Yes)ndw_1.Modify(department_dept_id.Update = Yes)ndw_1.Modify(department_dept_id.Key = Yes)ndw_1.Modify(DataWindow.Table.Update
32、Table = department)nndw_1.Modify(employee_emp_id.Update = No)ndw_1.Modify(employee_emp_fname.Update = No)ndw_1.Modify(employee_emp_lname.Update = No)ndw_1.Modify(employee_emp_id.Key = No)nELSEnROLLBACK USING SQLCA;nMessageBox(提示信息, 更新失敗!)nEND IF 小結(jié)1.數(shù)據(jù)窗口控件常用屬性數(shù)據(jù)窗口控件常用屬性數(shù)據(jù)窗口窗口控件常用函數(shù): nRetrieve()檢索數(shù)據(jù)n
33、update()更新表數(shù)據(jù) nInsertRow(long row) 在第row行插入一空行, row=0表示在末尾插入nDeleteRow(long row) 刪除第row行ngetrow() 返回數(shù)據(jù)窗口當(dāng)前行的行號ngetcolumn() 得到數(shù)據(jù)窗口控件當(dāng)前列的列號 nGetColumnName( ) 得到數(shù)據(jù)窗口控件當(dāng)前列的列名nRowCount() 返回數(shù)據(jù)窗口控件當(dāng)前可用行數(shù)。小結(jié)nScrollToRow (long row ) 滾動數(shù)據(jù)窗口控件的顯示到row行,該函數(shù)改變當(dāng)前行但不改變當(dāng)前列。nGetItemDecimal(long row,int column)得到數(shù)據(jù)窗口控件中row行、col列的數(shù)據(jù)值。返回值為DecimalnGetitemnumber(long row,int column)得到數(shù)據(jù)窗口控件中row行、col列的數(shù)據(jù)值。返回值為NumbernGetitemstring(long row,int column) 得到數(shù)據(jù)窗口控件中row行、col列的數(shù)據(jù)值。返回值為stringnGetItemDate(long row,int column
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年老年護(hù)理專業(yè)資格考試試題及答案
- CCF全國青少年信息學(xué)奧林匹克聯(lián)賽NOIP 2020真題
- 員工包吃伙食合同協(xié)議
- 商業(yè)保理轉(zhuǎn)讓合同協(xié)議
- 德佑簽定金協(xié)議后簽買賣合同
- 售車購銷合同協(xié)議
- 母嬰店投資入股合同協(xié)議
- 2025合作協(xié)議合同模板
- 2025按摩師勞動合同范本
- 2025廣州產(chǎn)品經(jīng)銷合同范本
- 電力營銷業(yè)務(wù)培訓(xùn)課件
- 中醫(yī)養(yǎng)生館運營方案項目市場調(diào)研報告
- 2015山東省水利水電建筑工程預(yù)算定額((下冊))
- 大話務(wù)場景保障
- 詢價文件(模板)
- 衛(wèi)生監(jiān)督協(xié)管服務(wù)
- 氣管切開病人的護(hù)理PPT課件-(1)1
- 餐廳水單萬能模板-可打印
- 電工電子實訓(xùn)-DT830B
- 新概念英語青少版-2B全單元課件-unit-25(共32張)
- 初中八年級上冊信息技術(shù)《用Python編程》教學(xué)設(shè)計
評論
0/150
提交評論