999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在數據庫應用系統中實現動態查詢的研究

2009-04-29 00:00:00楊明遠金喜波刁樹民張曉勇

摘要:本文研究了數據庫PowerBuilder如何實現動態查詢,并以汽配管理系統為例,探討動態查詢在汽配管理系統中的制作和實現。詳細介紹了數據表及字段的選擇、兩個字符型變量和WHERE 子句的生成、數據表間的關聯和關系二維表的設計及創建、Datawindow的生成并引入兩個重要函數。

關鍵詞:實現 動態查詢 PowerBuilder

中圖分類號:TP311.132 文獻標識碼:A

0 引言

PowerBuilder是現今最為流行的數據庫前端開發工具。掌握PowerBuilder開發工具固然重要,但運用開發工具開發一個有效的、易維護的、易升級的、功能強大的管理系統尤為重要。本文利用PowerBuilder開發工具應用在汽配管理系統為例,探討了汽配管理系統的制作方法,著重研究了動態查詢在汽配管理系統中的實現方式,延伸了Powerbuilder開發工具實用性。

1 汽配管理系統的系統分析

本系統是面向汽車配件銷售管理的管理信息系統。該系統能對汽車配件行業進行進貨、銷售、存儲的有效管理,且能集中管理汽車配件的應收應付帳,并能實現查詢分析統計等功能,及時響應企業汽車配件進銷的快速查詢和分析,使企業經營運作物流清晰,經營狀況一目了然。汽配管理系統數據表結構及表間關系詳見圖1。

2 動態查詢的實現

在PowerBuilder中,動態查詢的實現歸根結底就是在應用程序中完成一個Datawindow的制作,而可通過SQL語句的轉換得來[1]。因此,如何生成SQL語句就成了問題的關鍵。

分析SQL的SELECT語句:

Select’數據表’.’字段名’from’數據表’

……………第一部分

Where’表間關聯條件’and’查詢條件’

………………第二部分

從上述分析可以看出:SQL語句是有數據表及其字段、Where子句與表間關聯等幾部分組成的。尋找和利用其特點,就有可能實現動態查詢。

2.1 數據表及字段的選擇 數據表及字段的選擇是指選擇數據庫中具體的數據表及所需查詢的表字段,完成SQL語句的第一部分制作。在汽配管理系統中,供用戶查詢的數據表有8個,其中每個數據表擁有多個字段。為方便用戶的選擇,采用列表選擇的方法,分別用兩個列表顯示數據表及其字段。當用戶通過第一個列表選擇數據表時,在第二個列表中顯示出第一個列表所選擇的數據表的所有字段。在第二個列表中,雙擊所需的字段名。這樣的操作就選定了數據表及字段。實現上述選擇的關鍵是:在汽配管理系統中的動態查詢模塊里,定義了兩個字符型實例變量:LS-database[ ]及LS-field,分別容納所選定的數據表名及字段名字符串[2]。在字段列表框雙擊事件中,又定義了兩個字符型局部變量:Se-database及Se-field分別容納雙擊后選定的數據表名和字段名。其實現流程圖詳見圖2。

從圖2可知,數組LS-database[ ]及LS-field中存儲的內容,便是選定的數據表和字段名。

2.2 WHERE子句的生成 SQL語句的第二部分是Where子句。該子句是SQL語句的一個關鍵部分,用戶正是通過它來滿足檢索的要求。Where子句是有邏輯關系符、檢索字段名、檢索操作符及檢索值組成。其中邏輯關系符是指在Where子句間的“或者”和“并且”的關系。檢索字段名是指用戶提出檢索要求的字段名。檢索值是指對檢索字段提出的要求。檢索操作符是指檢索字段與檢索值之間的關系。Where子句的四個組成部分分別由三個下拉列表和一個單行編輯構成,其中檢索字段下拉列表項由數據表及字段選擇中選擇出來的字段名組成。Where子句實現思路:通過循環算法,把多個Where子句的四個組成部分組合起來,形成條件查詢子句。

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

2.4 Datawindow的生成 在表間關聯子句生成后,SQL語句的制作便完成了。但如何將SQL語句轉換成Datawindow呢?這里需要引進兩個函數:SyntaxfromSQL()和Create():

函數SyntaxfromSQL()用于產生一個Datawindow,它擁有三個參數:第一個參數是用于傳遞SQL語句(即在2.2中所生成的SQL語句);第二個參數用來表示Datawindow的風格;第三個參數是在Datawindow生成過程中出錯時保存錯誤信息。

函數Create(),使用從函數SyntaxfromSQL()中返回的屬性信息,在運行狀態下建立一個Datawindow。它有兩個參數:第一個參數即是從SyntaxfromSQL()函數中返回的字符串變量。第二個參數用在出錯時存儲出錯信息。

在系統中的具體實現代碼如下:

String sq1-statement,present,error,answer

SQL-statement=……

//SQL-statement中存儲著SQL描述語句

Present =”Style(type=grid)”

// Present 中存儲著Datawindow風格等屬性

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

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

至此完成了動態查詢的全部制作,實現了在PowerBuilder中動態查詢。

3 結束語

通過以上建立的對數據表及字段的選擇,把多個Where子句的四個組成部分組合起來表與表之間的關聯看成了一個二維表的關系,運用函數SyntaxfromSQL()和函數Create()生成Datawindow,實現了在PowerBuilder中動態查詢。

參考文獻:

[1]崔巍.PowerBuilder8.0數據庫應用系統開發教程[M].北京:清華大學出版社.2003.1:105-109.

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

[3]趙君等.利用重用查詢計劃實現數據庫性能的優化[J].長春:吉林大學學報.003.4:81-83.

主站蜘蛛池模板: 中美日韩在线网免费毛片视频| 性视频久久| 久久国产精品夜色| 国产哺乳奶水91在线播放| 精品国产免费观看| 亚洲三级片在线看| 999福利激情视频| 久久综合亚洲鲁鲁九月天| 欧美第一页在线| 无码中文AⅤ在线观看| 国产一级无码不卡视频| 免费欧美一级| 日韩福利在线观看| 国产永久在线视频| 亚洲日韩精品欧美中文字幕 | 99re精彩视频| 成人在线视频一区| 国产xx在线观看| 日韩无码真实干出血视频| 国产精品久久久久久久久久久久| 特级毛片免费视频| 伊在人亞洲香蕉精品區| 国产97视频在线| 无码高清专区| 蜜芽一区二区国产精品| 宅男噜噜噜66国产在线观看| 99视频在线免费| 亚洲永久视频| 日韩精品成人在线| www.亚洲天堂| 2020国产精品视频| 老熟妇喷水一区二区三区| 欧美日韩国产成人在线观看| 少妇极品熟妇人妻专区视频| 天天综合网在线| 久久久久九九精品影院| 久久精品人妻中文系列| 国产精品永久不卡免费视频| 国产一区二区丝袜高跟鞋| 免费精品一区二区h| 精品伊人久久久久7777人| 欧美精品亚洲二区| 99视频在线观看免费| 久久精品国产精品青草app| 亚洲国产一区在线观看| 久久香蕉国产线看观看式| 中文字幕在线播放不卡| 国产精品久久久久久影院| 日本91在线| 国产人成午夜免费看| 一级黄色欧美| 国产精品伦视频观看免费| 伊人激情综合网| 亚洲视频一区在线| 国产成人喷潮在线观看| 精品少妇人妻av无码久久| 欧美三级不卡在线观看视频| 国产三级视频网站| 国产超碰一区二区三区| 国产大片喷水在线在线视频| 亚洲日产2021三区在线| 色妞www精品视频一级下载| 高清亚洲欧美在线看| 国产成人啪视频一区二区三区 | 亚洲视频无码| 91精品伊人久久大香线蕉| a级毛片免费看| 国内精品小视频在线| 日韩欧美中文在线| 欧美黄色网站在线看| 青青操国产视频| 免费高清自慰一区二区三区| 国产成人综合欧美精品久久| 高清国产在线| 54pao国产成人免费视频| 午夜激情婷婷| 亚洲最大福利网站| 亚洲永久色| 日韩亚洲综合在线| 欧美日韩国产在线观看一区二区三区| 欧美第一页在线| 成人一级黄色毛片|