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

        ?

        在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)的研究

        2009-04-29 00:00:00楊明遠(yuǎn)金喜波刁樹(shù)民張曉勇

        摘要:本文研究了數(shù)據(jù)庫(kù)PowerBuilder如何實(shí)現(xiàn)動(dòng)態(tài)查詢(xún),并以汽配管理系統(tǒng)為例,探討動(dòng)態(tài)查詢(xún)?cè)谄涔芾硐到y(tǒng)中的制作和實(shí)現(xiàn)。詳細(xì)介紹了數(shù)據(jù)表及字段的選擇、兩個(gè)字符型變量和WHERE 子句的生成、數(shù)據(jù)表間的關(guān)聯(lián)和關(guān)系二維表的設(shè)計(jì)及創(chuàng)建、Datawindow的生成并引入兩個(gè)重要函數(shù)。

        關(guān)鍵詞:實(shí)現(xiàn) 動(dòng)態(tài)查詢(xún) PowerBuilder

        中圖分類(lèi)號(hào):TP311.132 文獻(xiàn)標(biāo)識(shí)碼:A

        0 引言

        PowerBuilder是現(xiàn)今最為流行的數(shù)據(jù)庫(kù)前端開(kāi)發(fā)工具。掌握PowerBuilder開(kāi)發(fā)工具固然重要,但運(yùn)用開(kāi)發(fā)工具開(kāi)發(fā)一個(gè)有效的、易維護(hù)的、易升級(jí)的、功能強(qiáng)大的管理系統(tǒng)尤為重要。本文利用PowerBuilder開(kāi)發(fā)工具應(yīng)用在汽配管理系統(tǒng)為例,探討了汽配管理系統(tǒng)的制作方法,著重研究了動(dòng)態(tài)查詢(xún)?cè)谄涔芾硐到y(tǒng)中的實(shí)現(xiàn)方式,延伸了Powerbuilder開(kāi)發(fā)工具實(shí)用性。

        1 汽配管理系統(tǒng)的系統(tǒng)分析

        本系統(tǒng)是面向汽車(chē)配件銷(xiāo)售管理的管理信息系統(tǒng)。該系統(tǒng)能對(duì)汽車(chē)配件行業(yè)進(jìn)行進(jìn)貨、銷(xiāo)售、存儲(chǔ)的有效管理,且能集中管理汽車(chē)配件的應(yīng)收應(yīng)付帳,并能實(shí)現(xiàn)查詢(xún)分析統(tǒng)計(jì)等功能,及時(shí)響應(yīng)企業(yè)汽車(chē)配件進(jìn)銷(xiāo)的快速查詢(xún)和分析,使企業(yè)經(jīng)營(yíng)運(yùn)作物流清晰,經(jīng)營(yíng)狀況一目了然。汽配管理系統(tǒng)數(shù)據(jù)表結(jié)構(gòu)及表間關(guān)系詳見(jiàn)圖1。

        2 動(dòng)態(tài)查詢(xún)的實(shí)現(xiàn)

        在PowerBuilder中,動(dòng)態(tài)查詢(xún)的實(shí)現(xiàn)歸根結(jié)底就是在應(yīng)用程序中完成一個(gè)Datawindow的制作,而可通過(guò)SQL語(yǔ)句的轉(zhuǎn)換得來(lái)[1]。因此,如何生成SQL語(yǔ)句就成了問(wèn)題的關(guān)鍵。

        分析SQL的SELECT語(yǔ)句:

        Select’數(shù)據(jù)表’.’字段名’from’數(shù)據(jù)表’

        ……………第一部分

        Where’表間關(guān)聯(lián)條件’and’查詢(xún)條件’

        ………………第二部分

        從上述分析可以看出:SQL語(yǔ)句是有數(shù)據(jù)表及其字段、Where子句與表間關(guān)聯(lián)等幾部分組成的。尋找和利用其特點(diǎn),就有可能實(shí)現(xiàn)動(dòng)態(tài)查詢(xún)。

        2.1 數(shù)據(jù)表及字段的選擇 數(shù)據(jù)表及字段的選擇是指選擇數(shù)據(jù)庫(kù)中具體的數(shù)據(jù)表及所需查詢(xún)的表字段,完成SQL語(yǔ)句的第一部分制作。在汽配管理系統(tǒng)中,供用戶(hù)查詢(xún)的數(shù)據(jù)表有8個(gè),其中每個(gè)數(shù)據(jù)表?yè)碛卸鄠€(gè)字段。為方便用戶(hù)的選擇,采用列表選擇的方法,分別用兩個(gè)列表顯示數(shù)據(jù)表及其字段。當(dāng)用戶(hù)通過(guò)第一個(gè)列表選擇數(shù)據(jù)表時(shí),在第二個(gè)列表中顯示出第一個(gè)列表所選擇的數(shù)據(jù)表的所有字段。在第二個(gè)列表中,雙擊所需的字段名。這樣的操作就選定了數(shù)據(jù)表及字段。實(shí)現(xiàn)上述選擇的關(guān)鍵是:在汽配管理系統(tǒng)中的動(dòng)態(tài)查詢(xún)模塊里,定義了兩個(gè)字符型實(shí)例變量:LS-database[ ]及LS-field,分別容納所選定的數(shù)據(jù)表名及字段名字符串[2]。在字段列表框雙擊事件中,又定義了兩個(gè)字符型局部變量:Se-database及Se-field分別容納雙擊后選定的數(shù)據(jù)表名和字段名。其實(shí)現(xiàn)流程圖詳見(jiàn)圖2。

        從圖2可知,數(shù)組LS-database[ ]及LS-field中存儲(chǔ)的內(nèi)容,便是選定的數(shù)據(jù)表和字段名。

        2.2 WHERE子句的生成 SQL語(yǔ)句的第二部分是Where子句。該子句是SQL語(yǔ)句的一個(gè)關(guān)鍵部分,用戶(hù)正是通過(guò)它來(lái)滿(mǎn)足檢索的要求。Where子句是有邏輯關(guān)系符、檢索字段名、檢索操作符及檢索值組成。其中邏輯關(guān)系符是指在Where子句間的“或者”和“并且”的關(guān)系。檢索字段名是指用戶(hù)提出檢索要求的字段名。檢索值是指對(duì)檢索字段提出的要求。檢索操作符是指檢索字段與檢索值之間的關(guān)系。Where子句的四個(gè)組成部分分別由三個(gè)下拉列表和一個(gè)單行編輯構(gòu)成,其中檢索字段下拉列表項(xiàng)由數(shù)據(jù)表及字段選擇中選擇出來(lái)的字段名組成。Where子句實(shí)現(xiàn)思路:通過(guò)循環(huán)算法,把多個(gè)Where子句的四個(gè)組成部分組合起來(lái),形成條件查詢(xún)子句。

        2.3 數(shù)據(jù)表間的關(guān)聯(lián) 在前兩節(jié)的基礎(chǔ)上即可順利地選擇出與字段,并生成Where子句及SQL語(yǔ)句。這時(shí),制作并未完成。因?yàn)閿?shù)據(jù)表間關(guān)聯(lián)這個(gè)關(guān)鍵部分還沒(méi)有解決。在Datawindow的人機(jī)交互制作過(guò)程中,表間關(guān)聯(lián)可自動(dòng)生成。但在應(yīng)用程序里,生成Datawindow的過(guò)程必須通過(guò)應(yīng)用程序設(shè)計(jì)編制才能實(shí)現(xiàn)[3]。表間關(guān)聯(lián)的基本思路是:在PowerBuilder的數(shù)據(jù)庫(kù)中,表間的關(guān)聯(lián)是固定的,表與表之間的關(guān)聯(lián)情況可以看成為一個(gè)二維表的關(guān)系。因此,在系統(tǒng)中設(shè)計(jì)了關(guān)系表查詢(xún)方案,以解決數(shù)據(jù)表間的關(guān)聯(lián)問(wèn)題。所謂關(guān)系表,是指一個(gè)能反映任意兩個(gè)表相聯(lián)關(guān)系的二維表格。若兩個(gè)表相關(guān)聯(lián),則在二維表格交叉欄內(nèi)填入關(guān)聯(lián)字段。若兩個(gè)表不關(guān)聯(lián),則在二維表格交叉欄內(nèi)填入空格。建立好關(guān)系表后,根據(jù)在數(shù)據(jù)表與表字段選擇中所選擇的數(shù)據(jù)表名(存儲(chǔ)在數(shù)組LS-database[ ]中),在關(guān)系表中,兩兩查詢(xún)關(guān)系。若兩表關(guān)聯(lián),根據(jù)交叉項(xiàng)中所得的關(guān)系在Where子句中填入相應(yīng)的語(yǔ)句即可完成。

        2.4 Datawindow的生成 在表間關(guān)聯(lián)子句生成后,SQL語(yǔ)句的制作便完成了。但如何將SQL語(yǔ)句轉(zhuǎn)換成Datawindow呢?這里需要引進(jìn)兩個(gè)函數(shù):SyntaxfromSQL()和Create():

        函數(shù)SyntaxfromSQL()用于產(chǎn)生一個(gè)Datawindow,它擁有三個(gè)參數(shù):第一個(gè)參數(shù)是用于傳遞SQL語(yǔ)句(即在2.2中所生成的SQL語(yǔ)句);第二個(gè)參數(shù)用來(lái)表示Datawindow的風(fēng)格;第三個(gè)參數(shù)是在Datawindow生成過(guò)程中出錯(cuò)時(shí)保存錯(cuò)誤信息。

        函數(shù)Create(),使用從函數(shù)SyntaxfromSQL()中返回的屬性信息,在運(yùn)行狀態(tài)下建立一個(gè)Datawindow。它有兩個(gè)參數(shù):第一個(gè)參數(shù)即是從SyntaxfromSQL()函數(shù)中返回的字符串變量。第二個(gè)參數(shù)用在出錯(cuò)時(shí)存儲(chǔ)出錯(cuò)信息。

        在系統(tǒng)中的具體實(shí)現(xiàn)代碼如下:

        String sq1-statement,present,error,answer

        SQL-statement=……

        //SQL-statement中存儲(chǔ)著SQL描述語(yǔ)句

        Present =”Style(type=grid)”

        // Present 中存儲(chǔ)著Datawindow風(fēng)格等屬性

        answer=sqlca. SyntaxfromSQL()(SQL- statement, present,error)//產(chǎn)生Datawindow

        Dw-1. Create(answer, error)//建立Datawindow

        至此完成了動(dòng)態(tài)查詢(xún)的全部制作,實(shí)現(xiàn)了在PowerBuilder中動(dòng)態(tài)查詢(xún)。

        3 結(jié)束語(yǔ)

        通過(guò)以上建立的對(duì)數(shù)據(jù)表及字段的選擇,把多個(gè)Where子句的四個(gè)組成部分組合起來(lái)表與表之間的關(guān)聯(lián)看成了一個(gè)二維表的關(guān)系,運(yùn)用函數(shù)SyntaxfromSQL()和函數(shù)Create()生成Datawindow,實(shí)現(xiàn)了在PowerBuilder中動(dòng)態(tài)查詢(xún)。

        參考文獻(xiàn):

        [1]崔巍.PowerBuilder8.0數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)教程[M].北京:清華大學(xué)出版社.2003.1:105-109.

        [2]何軍.PowerScript語(yǔ)言·事件·函數(shù)[M].北京:電子工業(yè)出版社.2003.6:255-258.

        [3]趙君等.利用重用查詢(xún)計(jì)劃實(shí)現(xiàn)數(shù)據(jù)庫(kù)性能的優(yōu)化[J].長(zhǎng)春:吉林大學(xué)學(xué)報(bào).003.4:81-83.

        亚洲免费国产中文字幕久久久| 国产精品亚洲一区二区三区久久| 亚洲一区二区三区偷拍厕所| 国产七十六+老熟妇| 88国产精品视频一区二区三区| 无码av一区在线观看| 女同舌吻互慰一区二区| 亚洲人成人无码www| 精品一区二区三区免费播放| 97SE亚洲国产综合自在线不卡| 加勒比一区二区三区av| 久久国产品野战| 天天爱天天做天天爽| 亚洲中文字幕无码不卡电影| av天堂亚洲另类色图在线播放| 人妻丰满av无码中文字幕| 99re热这里只有精品最新| 9丨精品国产高清自在线看| 成人国产高清av一区二区三区| 少妇伦子伦精品无吗| 国产精品久久婷婷六月丁香| 538亚洲欧美国产日韩在线精品| 韩国三级黄色一区二区| 国产精品爽爽久久久久久竹菊| 精品性影院一区二区三区内射 | 亚洲国产精品悠悠久久琪琪| 精品无码av一区二区三区| 久久AⅤ无码精品为人妻系列| 99熟妇人妻精品一区五一看片 | 国产精品丝袜久久久久久不卡| 粉嫩极品国产在线观看| 国产在线AⅤ精品性色| 亚洲av日韩专区在线观看| 和黑人邻居中文字幕在线 | 欧美精品一级| 中文字幕亚洲精品综合| 亚洲av永久无码精品一福利| 中文无码制服丝袜人妻av| 五码人妻少妇久久五码| 漂亮丰满人妻被中出中文字幕 | 粗大的内捧猛烈进出在线视频|