摘 要:數據查詢(Query)就是從數據庫表中檢索滿足條件的數據,數據查詢是數據庫的核心操作。數據查詢可分為單表查詢、多表查詢、單一條件查詢和復合條件查詢等。文章主要從設計思路、具體實現和事件代碼三個方面闡述在VFP6.0環境中基于多表復合條件查詢的設計與實現。
關鍵詞:數據查詢 VFP6.0 組合條件
中圖分類號:TP311.32文獻標識碼:A文章編號:1674-098X(2011)12(b)-0017-01
隨著計算機技術的不斷發展和應用,信息在現代社會和國民經濟中占據了主導地位,信息資源的開發和利用水平已經成為衡量一個國家綜合國力的重要標志之一。在計算機的主要三大應用領域(科學計算、數據處理和過程控制)中,數據處理是計算機應用領域中的一項很重要的內容,它主要利用計算機存儲和管理數據。
1 數據庫表和視圖的建立
對于VFP6.0而言,數據庫是與特定主題和任務相關的數據集合,是包含了多種容器的對象。VFP數據庫包含存儲數據的表、視圖、查詢、連接和存儲過程多個對象。A依附任何數據庫,前者稱為數據庫表,后者叫自由表;視圖是從一個或幾個基本表(或視圖)導出的虛擬表,當基本表中的數據發生變化,視圖中的數據也跟隨基本表的變化而變化。換句話說視圖就像一個窗口,透過它可以看到數據庫中自己感興趣的數據及其變化。視圖操作和基本表的操作相似,主要應用于多表查詢、統計等操作。在VFP6.0先建立名為student的數據庫,數據庫中的表以及由表所導出的cj視圖如圖1所示。
2 基于學生成績視圖的復合條件的設計與實現
2.1 設計思路
在創建的表單中,添加輸入查詢數據的文本框和顯示查詢結果的表格,根據文本框的輸入值,將查詢結果顯示在表格中,一旦文本框的值發生變化,表格中的查詢結果也隨之發生相應的變化。故特選擇文本框的InteractiveChange事件輸入程序代碼,每在文本框鍵入一個字符,系統就發會發生一次查詢。這樣一來,即可實現系統模糊查詢或精確查詢,若用戶的輸入有誤,可在第一時間提醒用戶,以便提高用戶的操作實效。
2.2 具體實現
在VFP6.0中建立如圖2所示的表單
2.3 事件過程代碼
在該表單的load事件中定義查詢操作所用到的變量,代碼如下:
public zy,kcm,xb,xm,xb,exps
zy=\"\"
kcm=\"\"
xb=\"\"
xm=\"\"
xm=\"\"
exps=\".t.\"
在text1文本框中的InteractiveChange事件中如下的代碼:
zy=allt(thisform.text1.value)
xb=allt(thisform.text2.value)
kcm=allt(thisform.text3.value)
xm=allt(thisform.text4.value)
select 學生成績
if not empty(zy)
exps=exps+\" and allt(專業)=zy \"
endif
if not empty(xb)
exps=exps+\" and allt(性別)=xb\"
endif
if not empty(kcm)
exps=exps+\" and allt(課程名)=kcm\"
endif
if not empty(xm)
exps=exps+\" and allt(姓名)=xm\"
endif
set filter to exps[3]
count to xs
if xs==0
messagebox(\"對不起沒有找到你要查詢的記錄\")
endif
go top
thisform.grid1.refresh
分別在text2、text3和text4文本框的InteractiveChange事件中分別輸入thisform.text1.interactivechange代碼。
程序主要使用了VFP6.0記錄過濾器 set filter to語句和宏替換函數(即替換出字符型變量的內容)實現復合條件查詢,該查詢不僅可實現記錄的模糊查詢或精確查詢,還可進行簡單條件查詢或復合條件查詢。文中程序代碼通俗易懂,易學易用,且全部調試通過,用戶可以直接使用,也可以根據實際需要進行修改使用。
參考文獻
[1]王珊,薩師煊.數據庫系統概論[M].北京:高等教育出版社,2006.