亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PowerBuilder中數(shù)據(jù)窗口之屬性編程技術(shù)

        2008-12-31 00:00:00秦飛舟
        電腦知識與技術(shù) 2008年19期

        摘要:數(shù)據(jù)窗口對象及其所有實體(如列、文本、圖形、圖像等)都有一組屬性值。本文主要介紹了如何編寫代碼查看和修改這些屬性,以達到在程序運行過程中動態(tài)修改數(shù)據(jù)窗口的數(shù)據(jù)源和外觀界面的目的。

        關(guān)鍵詞:PowerBuilder;數(shù)據(jù)窗口;getsqlselect函數(shù);describe函數(shù);modify函數(shù)

        中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)19-30063-02

        How to Script about Datawindow in Languages of PowerBuilder

        QIN Fei-zhou

        (College of Physic Electronic Information, Ningxia University, Yinchuan 750021, China)

        Abstract: Each column and graphic object in the DataWindow has a set of properties, which are listed in the DataWindow Reference. You specify one or more properties as a string and Describe returns the values of the properties.

        Key words: PowerBuilder; DataWindow; Function of getsqlselect; describe and modify

        數(shù)據(jù)庫類應用系統(tǒng)的開發(fā),主要目的是組織處理數(shù)據(jù)。而數(shù)據(jù)窗口對象是PowerBuilder提供給開發(fā)人員一個操作數(shù)據(jù)的強有力的工具,也是PowerBuilder與其他面向?qū)ο蟮臄?shù)據(jù)庫應用前端開發(fā)工具的最主要的區(qū)別之一。通過數(shù)據(jù)窗口控件,開發(fā)人員可以查詢并修改數(shù)據(jù)、改變數(shù)據(jù)的表現(xiàn)形式、處理錯誤及共享數(shù)據(jù)等。

        數(shù)據(jù)庫窗口對象是用于查詢、顯示和維護來自關(guān)系型數(shù)據(jù)庫或其他數(shù)據(jù)源(如Excel或dBASE文件)數(shù)據(jù)的對象。在數(shù)據(jù)窗口對象中可以定義數(shù)據(jù)的顯示格式、顯示風格和其他數(shù)據(jù)屬性,使數(shù)據(jù)對用戶更加直觀和更有意義。開發(fā)人員可以通過定義數(shù)據(jù)窗口對象來指定數(shù)據(jù)源、表現(xiàn)風格以及其他數(shù)據(jù)屬性,但利用編程對數(shù)據(jù)窗口進行修改則更應該是開發(fā)者所必需掌握的技術(shù)。下面將主要介紹幾種關(guān)于數(shù)據(jù)窗口的編程方法。

        1 動態(tài)修改數(shù)據(jù)窗口對象的數(shù)據(jù)源

        當我們建立一個數(shù)據(jù)窗口時必須確定其數(shù)據(jù)源,一旦這個數(shù)據(jù)窗口建立完畢后,它的數(shù)據(jù)源也就確定了。如果想改變改變數(shù)據(jù)源,可用以下兩種方法實現(xiàn)。

        方法1:

        string d_name

        dw_1.dataobject=d_name

        dw_1.settransobject(sqlca);

        這段代碼可以動態(tài)地修改數(shù)據(jù)窗口控件dw_1所關(guān)聯(lián)的數(shù)據(jù)窗口對象。數(shù)據(jù)窗口對象的名稱放在字符串變量d_name中,數(shù)據(jù)窗口控件dw_1所關(guān)聯(lián)的數(shù)據(jù)窗口對象隨變量d_name的變化而變。

        方法2:

        string OldSyn, NewSyn

        //獲取與數(shù)據(jù)窗口dw_emp相關(guān)的SQL SELECT語句

        OldSyn = dw_emp.GetSQLSelect()

        //指定新的SQL SELECT語句

        NewSyn = 'SELECT employee.EMP_Name FROM employee WHERE salary < 100000'

        IF dw_emp.Retrieve() = 0 THEN

        dw_emp.SetSQLSelect(NewSyn) //為dw_emp設(shè)置新的SQL SELECT語句

        dw_emp.Retrieve()

        END IF

        用上述方法可以為數(shù)據(jù)窗口改變SQL SELECT語句。這兩個方法都可以改變數(shù)據(jù)窗口的數(shù)據(jù)源,方法一的代價是需要作多個數(shù)據(jù)窗口,方法二的適用范圍是用戶對數(shù)據(jù)進行隱蔽操作。開發(fā)人員可根據(jù)實際需要進行選擇使用。

        2 修改數(shù)據(jù)窗口所包含對象的屬性

        數(shù)據(jù)窗口對象屬性主要用來存儲控制數(shù)據(jù)窗口對象行為的有關(guān)信息。開發(fā)人員通過修改這些內(nèi)容可以給用戶提供一個外形動態(tài)變化的數(shù)據(jù)窗口,而無須做多個類似的數(shù)據(jù)窗口。這里所講的屬性不是數(shù)據(jù)窗口控件的屬性,而是在數(shù)據(jù)窗口控件中所顯示的對象(如column、text)的屬性。在數(shù)據(jù)窗口畫板中可以確定數(shù)據(jù)窗口對象屬性,也在程序代碼中修改對象的屬性值。

        2.1 獲得對象的屬性表達式

        Describ函數(shù)主要是用于獲取數(shù)據(jù)窗口對象或非數(shù)據(jù)窗口對象中的對象屬性。數(shù)據(jù)窗口中的每個對象(如column、text)都有一個屬性集。將一個或多個屬性可設(shè)定成一個字符串,Describe返回這個字符串的內(nèi)容。屬性列表中屬性的格式:對象名稱.屬性。參看以下例子:

        string data_type

        int data_value

        //返回數(shù)據(jù)窗口dw_1的列對象salary的數(shù)據(jù)類型

        data_type=dw_1.describe(\"salary.coltype\")

        //如果列對象salary的數(shù)據(jù)類型是number(數(shù)值型)

        if data_type=\"number\" then

        //將第一行salary列的值復制到變量data_value

        data_value=dw_1.getitemnumber(1,\"salary\")

        end if

        如果對象是列,可指定列名或指定以'#'開始的列號,數(shù)據(jù)窗口畫板可自動給出列的名字和列的標識。下面兩條語句功能相同,都是獲取當前列的數(shù)據(jù)類型。

        String s,t

        s=this.describe('#' +string(this.getcolumn())+'.coltype')

        t=this.describe(this.getcolumnname()+'.coltype')

        2.2 Modify函數(shù)的使用

        Modify函數(shù)用于修改一個數(shù)據(jù)窗口對象的屬性值,通過修改屬性值,通過說明可以修改數(shù)據(jù)窗口對象的外觀、行為和數(shù)據(jù)源信息,還可為數(shù)據(jù)窗口增加或移走對象。Modify函數(shù)一般用于下列內(nèi)容的修改:

        1)修改顏色、設(shè)置字體、對象的其他外觀屬性。

        2)在數(shù)據(jù)窗口中修改不同表的update狀態(tài),可以同時修改多個表。

        3)修改數(shù)據(jù)窗口對象的SELECT 和WHERE子句。

        4)調(diào)整Query 模式或Prompt For Criteria,使用戶可以規(guī)定所需要的數(shù)據(jù)。

        5)修改Retrieve Only As Needed的狀態(tài)。

        6)修改數(shù)據(jù)窗口的數(shù)據(jù)源

        7)控制Print Preview的顯示。

        8)在數(shù)據(jù)窗口中增加和刪除對象(如lines 或bitmaps)

        PowerBuilder包含了許多修改數(shù)據(jù)窗口屬性的函數(shù)。在使用Modify之前,必須檢查用于對象的控件上的數(shù)據(jù)窗口的函數(shù)列表,確保產(chǎn)生修改的函數(shù)是存在的。

        例:數(shù)據(jù)窗口對象關(guān)聯(lián)了department和empolyee兩個表,修改department表時,沒有設(shè)置狀態(tài)標志,隨后employee表被修改。如果所有有修改都成功,update命令設(shè)置標志位,并使用commit命令提交這個修改。

        integer rc

        string err

        // 修改department,如同在數(shù)據(jù)窗口畫板中一樣

        rc = dw_1.Update(TRUE, FALSE) //

        IF rc = 1 THEN //如果表department已被更新成功

        //禁止表department的列新

        dw_1.Modify(\"department_dept_name.Update = No\")

        dw_1.Modify(\"department_dept_id.Update = No\")

        dw_1.Modify(\"department_dept_id.Key = No\")

        // 使employee表成為可更新的

        dw_1.Modify(\"DataWindow.Table.UpdateTable = ~\"employee~\"\")

        //返回對表employee列的修改

        dw_1.Modify(\"employee_emp_id.Update = Yes\")

        dw_1.Modify(\"employee_emp_fname.Update = Yes\")

        dw_1.Modify(\"employee_emp_lname.Update = Yes\")

        dw_1.Modify(\"employee_emp_id.Key = Yes\")

        //更新表employee

        rc = dw_1.Update()

        IF rc = 1 THEN //兩個表都更新成功

        COMMIT USING SQLCA;

        ELSE

        ROLLBACK USING SQLCA; // 表employee更新失敗

        MessageBox(\"提示信息\",\"表employee更新失?。")

        END IF

        ELSE//表department更新失敗

        ROLLBACK USING SQLCA;

        MessageBox(\"提示信息\",\"表department更新失?。")

        END IF

        參考文獻:

        [1]王姍,薩師煊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 4版. 高等教育出版社,2006.

        [2]高守傳,劉小靜. 使用嵌入式SQL訪問數(shù)據(jù)庫[J]. 電腦編程技巧與維護,2007(2).

        [3]吳飛,王昕. 嵌入式移動數(shù)據(jù)庫SQL SERVER for Windows CE的應用[J]. 微計算機信息,2006(7).

        [4]張繼德,史寶英. PowerBulider大型結(jié)果集的處理[J]. 電腦知識與技術(shù),2006(11).

        [5]崔巍. PowerBuilder7.0應用技術(shù)[M]. 清華大學出版社,2000.

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文

        国产亚洲午夜高清国产拍精品| 国产剧情福利AV一区二区| 亚洲精品国产美女久久久| 欧美亚洲国产日韩一区二区三区| 视频一区视频二区亚洲免费观看| 国产性感主播一区二区| 色婷婷色丁香久久婷婷| 国精产品推荐视频| aaaaaa级特色特黄的毛片| 国产成人免费高清激情明星| 国产桃色精品网站| 国产成人久久精品二区三区| 日本一区二区三区高清在线视频| 中文字幕在线亚洲精品| 理论片87福利理论电影| japanesehd中国产在线看| 久久精品中文字幕极品| 国内精品久久人妻性色av| 亚洲精品国产第一区二区| 无码av无码天堂资源网| 免费毛片性天堂| 国产激情在线观看视频网址| 日本xxxx色视频在线观看| 国产av旡码专区亚洲av苍井空| 亚洲肥老熟妇四十五十路在线 | 丰满少妇被粗大的猛烈进出视频 | 精品三级久久久久久久电影| 国产精品亚洲av国产| 五月天中文字幕日韩在线| 四虎影视免费永久在线观看| 国产真实乱人偷精品人妻| 亚洲a∨好看av高清在线观看| 亚洲精品第四页中文字幕| 日韩aⅴ人妻无码一区二区| 1769国产精品短视频| 国产成人综合亚洲国产| 伊人情人色综合网站| 亚洲va中文字幕无码| 娇妻粗大高潮白浆| 亚洲综合第一页中文字幕| 免费久久人人爽人人爽av|