第一篇:2010安徽省WORD全國計算機等級考試二級VB考試技巧與口訣
1、設有下列二叉樹:圖見書P46 對此二叉樹中序遍歷的結果為(B)A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA
2、下列關于隊列的敘述中正確的是(C)A.在隊列中只能插入數(shù)據(jù) B.在隊列中只能刪除數(shù)據(jù) C.隊列是先進先出的線性表 D.隊列是先進后出的線性表
3、關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括(B)A.排序、索引、統(tǒng)計 B.選擇、投影、連接 C.關聯(lián)、更新、排序 D.顯示、打印、制表
4、下列關于棧的敘述中正確的是(D)A.在棧中只能插入數(shù)據(jù) B.在棧中只能刪除數(shù)據(jù)
C.棧是先進先出的線性表 D.棧是先進后出的線性表
5、算法一般都可以用哪幾種控制結構組合而成(D)A.循環(huán)、分支、遞歸 B.順序、循環(huán)、嵌套 C.循環(huán)、遞歸、選擇 D.順序、選擇、循環(huán)
6、在關系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是(D)A.樹結構 B.網(wǎng)結構 C.線性表 D.二維表
7、在結構化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是(B)A.可行性分析 B.需求分析 C.詳細設計 D.程序編碼
8、在一棵二叉樹上第5層的結點數(shù)最多是(B)注:由公式2(k-1)得 A.8 B.16 C.32 D.15
9、結構化程序設計主要強調(diào)的是(B)A.程序的規(guī)模 B.程序的易讀性
C.程序的執(zhí)行效率 D.程序的可移植性
10、下列模式中,能夠給出數(shù)據(jù)庫物理存儲結構與物理存取方法的是(A)A.內(nèi)模式 B.外模式 C.概念模式 D.邏輯模式
11、下述關于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是(A)A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余 B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致 D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
第二篇:全國計算機等級考試二級
全國計算機等級考試二級證書
簡介 ***2432010年9月二級access
證書樣本
全國計算機等級考試和高考、全國英語四六級考試一樣,是國家教育部考試中心推出的三大權威考試,是在校大學生必須參加的考試和衡量計算機水平最權威、含金量和承認度最高的認證,并唯一得到國家和各用人單位的統(tǒng)一認可。
創(chuàng)想獨有優(yōu)勢
通過率高:在全國平均通過率不到10%的情況下,創(chuàng)想分中心10級助產(chǎn)班參考7人,雙科通過6人;10級護理5班參考21人,雙科通過17人;創(chuàng)想分中心歷屆一次性通過率全省第一。
創(chuàng)想學員畢業(yè)受歡迎:
06級陳燕燕同學畢業(yè)后考取濟寧汶上縣醫(yī)院事業(yè)編;
08級馬玉寶同學,畢業(yè)后被濟南市第三人民醫(yī)院錄用;2010年9月份前二級access
09級劉曉燕同學優(yōu)先被濟南市中心人民醫(yī)院選為實習生。證書全通通用,上網(wǎng)可查。查詢網(wǎng)址
第三篇:全國計算機等級考試二級VB考點分析之過程
全國計算機等級考試二級VB考點分析之過程
6.1 Sub過程
考點1 建立Sub過程
通用Sub過程的結構與前面多次見過的事件過程的結構類似。一般格式如下:
[Static][Private][Public]Sub過程名[(參數(shù)列表)] 語句塊
[Exit Sub] [語句塊] End Sub
說明:
(1)Sub過程以Sub開頭,以End Sub結束,在Sub和End Sub之間是描述過程操作的語句塊,稱為“過程體”或“子程序體”。
(2)End Sub標志著Sub過程的結束。
(3)Sub過程不能嵌套。
考點2 調(diào)用Sub過程
調(diào)用引起過程的執(zhí)行。也就是說,要執(zhí)行一個過程,必須調(diào)用該過程。
Sub過程的調(diào)用有兩種方式:一種是把過程的名字放在一個Call語句中,一種是把過程名作為一個語句來使用。
(1)用Call語句調(diào)用Sub過程。
格式:Call過程名[(實際參數(shù))]。
(2)把過程名作為一個語句來使用。
在調(diào)用Sub過程時,如果省略關鍵字Call,就成為調(diào)用Sub過程的第2種方式。與
第1種方式相比,它有兩點不同:
(1)去掉關鍵字Call。
(2)去掉“實際參數(shù)”的括號。考點3 通用過程與事件過程
控件事件過程的一般格式為:
[Private | Public] Sub控件名_事件名(參數(shù)表)語句組
End Sub
窗體事件過程的一般格式為:
[Private][Public] Sub Form_事件名(參數(shù)表)語句組
End Sub
通用過程可以放在標準模塊中,也可以放在窗體模塊中,而事件過程只能放在窗體模塊中,不同模塊k中的過程(包括事件過程和通用過程)可以互相調(diào)用。當過程名唯一時,可以直接通過過程名調(diào)用;如果兩個或兩個以上的標準模塊中含有相同的過程名,則在調(diào)用時必須用模塊名限定,其一般格式為:
模塊名.過程名(參數(shù)表)
一般來說,通用過程(包括Sub過程、Function過程)之間、事件過程之間、通用過程與事件過程之間,都可以互相調(diào)用。
6.2 建Function過程
考點4 建立Function過程
Function過程定義的格式如下:
[Static][Private][Public]Function過程名[(參數(shù)表列)][As類型] [語句塊] [過程名=表達式] [Exit Function] [語句塊] End Function
說明:
(1)Function過程以Function開頭,以End Function結束,在兩者之間是描述過程操作的語句塊。
(2)調(diào)用Sub過程相當于執(zhí)行一個語句,不直接返回值;而調(diào)用Function過程要返回一個值,因此可以像內(nèi)部函數(shù)一樣在表達式中使用。
考點5 調(diào)用Function過程
Function過程的調(diào)用比較簡單,因為可以像使用Visual Basic內(nèi)部函數(shù)一樣來調(diào)用Function過程。實際上,由于Function過程能返回一個值,因此完全可以把它看成是一個函數(shù),它與內(nèi)部函數(shù)(如Sqr,Str$,Chr$等)沒有什么區(qū)別,只不過內(nèi)部函數(shù)由語句系統(tǒng)提供,而Function過程由用戶自己定義。
6.3 參數(shù)傳送
在Visual Basic中,通常把形式參數(shù)叫做“參數(shù)”,而把實際參數(shù)叫做“自變量”。
考點6 形參與實參
形參是在Sub,F(xiàn)unction過程的定義中出現(xiàn)的變量名,實參則是在調(diào)用Sub或Function過程時傳送給Sub或Function過程的常數(shù)、變量、表達式或數(shù)組。在Visual Basic中,可以通過兩種方式傳送參數(shù),即按位置傳送和指名傳送。
考點7 引用
Visual Basic中,參數(shù)通過兩種方式傳送,即傳地址和傳值,其中傳地址習慣上稱為引用。在默認情況下,變量(簡單變量、數(shù)組或數(shù)組元素以及記錄)都是通過“引用”傳送給Sub或Function過程的。在這種情況下可以通過改變過程中相應的參數(shù)來改變變量成值,這意著,當通過引用來傳送實參時,可以改變傳送給過程的變量的值。
考點8 傳值
傳值就是通過值傳送實際參數(shù),即傳送實參的值而不是傳送它的地址。在這種情況下,系統(tǒng)扭需要傳送的變量復制到一個臨時的單元中,然后把該臨時單元的地址傳送給被調(diào)用的通用過程。由于通過過程沒有訪問變量(實參)的原始地址,因此不會改變原來變量的值,所有的變化都是在變量的副本上進行的。
考點9 數(shù)組參數(shù)的傳送
Visual Basic允許把數(shù)組作為實參傳送到過程中。用數(shù)組作為過程的參數(shù)時,應在數(shù)組名的后面加上一對括號,以免與普通變量相混淆。除遵循參數(shù)傳送的一般規(guī)則外,還應注意以下兩點:
(l)為了把一個數(shù)組的全部元素傳遞給一個過程,應將數(shù)組名分別放入實參表和形參表中,并略去數(shù)組的上下界,但括號不能省略。
(2)如果不需要把整個數(shù)組傳遞給通用過程,可以只傳遞指定的單個元素,這需要在數(shù)組名后面的括號中定上指定的元素下標。
6.4 可選參數(shù)和可變參數(shù)
Visual Basic 6.0提供了十分靈活和安全的參數(shù)傳送方式,允許使用可選參數(shù)和可變參數(shù)。在調(diào)用一個過程時,可以向過程傳送可選的參數(shù)或者任意數(shù)量的參數(shù)。
考點10 可選參數(shù)
在調(diào)用一個過程時,有時并不是每次都要傳遞所有的參數(shù)。有些參數(shù)的存在是為了提供某項功能,但這項功能不是每次調(diào)用該過程時都需要的或者在調(diào)用這個過程時,某個參數(shù)在絕大部分時間內(nèi)都使用同一個值,對于其他的值只有在特殊的情況下才使用。
使用可選參數(shù)時還應注意兩點:
(1)如果某個參數(shù)被指定為可選參數(shù),那么它后面的參數(shù)必須都是可選的。
(2)Optional關鍵字可以和ByVal關鍵字一起使用。
考點11 可變參數(shù)
在使用可變參數(shù)時應注意以下5點:
(1)ParamArray關鍵字只能用于參數(shù)列表中的最后一個參數(shù)。
(2)用ParamArray關鍵字聲明的參數(shù)數(shù)組只能是Variant類型。
(3)ParamArray關鍵字不能和ByVal關鍵字,ByRef關鍵字以及Optional關鍵字一起使用。
(4)如果使用ParamArray關鍵字聲明可變個數(shù)參數(shù),那么其他的參數(shù)都不能被聲明為可選的。
(5)用ParamArray關鍵字聲明的參數(shù)數(shù)組,無論是否使用了Option Basel語句,它的下界總是0。
6.5 對象參數(shù)
考點12 對象參數(shù)
和傳統(tǒng)的程序設計語言不同,Visual Basic允許用對象作為參數(shù),即窗體或控件作為通用過程的參數(shù)。在有些情況下,這可以簡化程序設計,提高效率。實際上,在Visual Basic中還可以向過程傳送對象,包括窗體和控件。
對象作為參數(shù)與用其他數(shù)據(jù)類型作為參數(shù)的過程沒有什么區(qū)別,其格式為:
Sub過程名(形式參數(shù)表)語句塊
[Exit Sub] …
End Sub
“形式參數(shù)表”中的形參的類型通常為Control或Form注意,在調(diào)用含有對象的過程時,對象只能通過傳地址方式傳送。因此在定義過程時,不能在其參數(shù)前加關鍵字ByVal。
6.6 局部內(nèi)存分配
考點13 局部內(nèi)存分配
有時候,在過程結束時,可能不希望失去保存在局部變量中的值。如果把變量聲明為全局變量或模塊級變量,則可解決這個問題。但如果聲明的變量只在一個過程中使用,則這種方法并不好。為此,Visual Basic提供了一個Static語句,其格式為:
Static變量表
其中“變量表”的格式如下:
變量[()][As類型][,變量[()][As類型]]…
可以看出,Static語句的格式與Dim語句完全一樣,但Static語句只能出現(xiàn)在事件過程、Sub過程或Function過程中。在過程中的Static變量只有局部的作用域,即只在本過程中可見,但可以和模塊級變量一樣,即使過程結束后,其值仍能保留。
在程序設計過程中,Static語句常用于以下兩種情況:
(1)記錄一個事件被觸發(fā)的次數(shù),即程序運行時事件發(fā)生的次數(shù)。
(2)用于開關切換,即原來為開,將其改為關,反之亦然。
6.7 Shell函數(shù)
考點14 shell函數(shù)
在Visual Basic中不但可以調(diào)用通用過程,而且可以調(diào)用各種應用程序。也就是說,凡是能在Windows下運行的應用程序,基本上都可以在Visual Basic中調(diào)用。這一功能通過Shell函數(shù)來實現(xiàn)。
Shell函數(shù)的格式如下:
Shell(命令字符串[,窗口類型])
其中“命令字符串”是要執(zhí)行的應用程序的文件名(包括路徑),它必須是可執(zhí)行文件,其擴展名為.COM,.EXE,.BAT或.PIF,其他文件不能用Shell函數(shù)執(zhí)行。
第四篇:全國計算機等級考試二級vfp考點
010二級公共基礎知識復習綱要
第 1 章
數(shù)據(jù)結構與算法
考點1:算法具有4個基本特征:可行性、確定性、有窮性、擁有足夠的情報。確定性:是指算法中每一個步驟都必須是有明確定義的,不允許模棱兩可的定義 有窮性:是指算法必須能在有限的時間內(nèi)做完
一個算法由兩種基本要素組成:一是對數(shù)據(jù)對象的運算和操作,二是算法的控制結構 考點2:算法復雜度包括時間復雜度和空間復雜度 時間復雜度
執(zhí)行算法所需要的計算工作量 空間復雜度
執(zhí)行這個算法所需要的內(nèi)存空間 考點3:數(shù)據(jù)結構
一:討論的問題:1.數(shù)據(jù)元素之間的邏輯關系,即數(shù)據(jù)的邏輯結構 2.數(shù)據(jù)元素在計算機中的存儲關系,即數(shù)據(jù)的存儲結構 3.對各種數(shù)據(jù)結構進行的運算
考點4:數(shù)據(jù)結構分為兩大類型:線性結構與非線性結構。(1)如果一個非空的數(shù)據(jù)結構滿足下列兩個條件: ① 有且只有一個根結點;
② 每一個結點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結構為線性結構。
如果一個數(shù)據(jù)結構不是線性結構,則稱之為非線性結構??键c5:線性表
特點:(1)線性表中所有元素所占的存儲空間是連續(xù)的
(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的 考點5: 棧的基本概念
棧(stack)是一種特殊的線性表,是限定只在一端進行插入與刪除的線性表。棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的??键c6:隊列的基本概念
隊列是只允許在一端進行刪除,在另一端進行插入的順序表,通常將允許刪除的這一端稱為隊頭,允許插入的這一端稱為隊尾。當表中沒有元素時稱為空隊列。即先進先出表。循環(huán)隊列就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間,供隊列循環(huán)使用
考點7: 鏈表
在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指針,稱為指針域。其中指針用于指向該結點的前一個或后一個結點(即前件或后件)??键c8:二叉樹性質(zhì)
(1)
在樹結構中,每一個結點只有一個前件,稱為父結點,沒有父結點的只有一個,成為根結點
(2)
沒有后件的結點成為葉子結點
(3)
一個結點所擁有的后件個數(shù)稱為該結點的度,在樹中,所有結點中最大的度稱為樹的度
(4)
樹的最大層次稱為樹的深度
(5)
在二叉樹的第k層上,最多有2^(k-1)個結點(6)
深度為m的二叉樹最多有2^m-1個結點(7)
任意一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個(8)
滿二叉樹:除最后一層外,每一層上的所有結點都有兩個子節(jié)點
(9)
完全二叉樹:除最后一層外,每一層上的結點數(shù)都達到最大值,在最后一層上只缺少右邊的若干結點
考點9: 二叉樹的遍歷
根據(jù)訪問根結點的次序,二叉樹的遍歷分為三類:前序遍歷、中序遍歷和后序遍歷。(1)前序遍歷
先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且在遍歷左、右子樹 時,仍需先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。(2)中序遍歷
先遍歷左子樹、然后訪問根結點,最后遍歷右子樹;并且,在遍歷左、右子 樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。例如,對圖 1-1 中的二叉樹進行中序遍歷的結果(或稱為該二叉樹的中序序列)(3)后序遍歷
先遍歷左子樹、然后遍歷右子樹,最后訪問根結點;并且,在遍歷左、右子 樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點??键c10:各種排序的復雜度(1)順序查找需要比較n 次
(2)冒泡排序在最壞的情況下需要比較次數(shù)為n(n-1)/2。(3)簡單插入排序法,最壞情況需要n(n-1)/2 次比較;(4)希爾排序法,最壞情況需要O(n1.5)次比較。
(5)簡單選擇排序法,最壞情況需要n(n-1)/2 次比較;(6)堆排序法,最壞情況需要O(nlog2n)次比較。
第二章:程序設計基礎
考點1:結構化程序設計的原則
(1)自頂向上:先考慮整體,再考慮細節(jié);先考慮全局目標,再考慮局部目標;(2)逐步求精:對復雜問題應設計一些子目標作為過渡,逐步細化;
(3)模塊化:把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊。
(4)限制使用goto 語句:在程序開發(fā)過程中要限制使用goto 語句??键c2:結構化程序的基本結構
結構化程序的基本結構有三種類型:順序結構、選擇結構和循環(huán)結構。
考點3: 面向對象方法涵蓋對象及對象屬性與方法、類、繼承、多態(tài)性幾個基本要素。對象是面向對象方法中最基本的概念,主要特點:(1)標識惟一型
(2)分類性(3)多態(tài)性
(4)封裝性
(5)模塊獨立性好 考點4:消息:對象間的相互合作需要一個機制來協(xié)助進行,這個機制就是消息 考點5:繼承是面向對象的方法的一個主要特征,分為單繼承和多重繼承
第三章:軟件工程基礎
考點1: 計算機軟件是包括程序、數(shù)據(jù)以及相關文檔的完整集合,軟件工程包括3 個要素:方法、工具和過程
考點2: 軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。軟件生命周期還可以分為軟件定義、軟件開發(fā)、軟件運行維護階段 軟件定義階段包括:可行性研究、需求分析
軟件開發(fā)階段包括:概要設計、詳細設計、實現(xiàn)、測試 軟件維護階段包括:使用、維護、退役
考點3:軟件工程的理論和技術性研究主要包括:軟件開發(fā)技術和軟件工程管理 考點4:數(shù)據(jù)流圖圖符的含義
圓形表示加工,箭頭表示數(shù)據(jù)流,等于號表示存儲文件,矩形表示源、潭
考點5:數(shù)據(jù)字典:是結構化分析方法的核心,數(shù)據(jù)字典是對所有與系統(tǒng)相關的數(shù)據(jù)元素的一個有組織的列表
考點6:軟件需求規(guī)格說明書是需求分析階段的最后成果 考點7:模塊獨立性
衡量模塊獨立性的定性標準:內(nèi)聚性與耦合性
內(nèi)聚性:是一個模塊內(nèi)部各個元素間彼此結合的緊密程度的度量 耦合性:模塊間互相連接的緊密程度的度量 一個優(yōu)秀的設計應盡量做到高內(nèi)聚、低耦合
考點8:典型的數(shù)據(jù)流類型有兩種:變換型和事務型 考點9:程序流程圖圖符的含義
考點10:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程 靜態(tài)測試是由人工進行的測試 動態(tài)測試是基于計算機的測試
考點11:白盒測試主要方法:邏輯覆蓋、基本路徑測試
黑盒測試主要方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖等
軟件測試過程一般按4個步驟來進行:單元測試、集成測試、驗收測試、系統(tǒng)測試
考點12:程序調(diào)試的任務是診斷和改正程序中的錯誤,與測試不同,軟件測試是盡可能多的發(fā)現(xiàn)錯誤
第四章:數(shù)據(jù)庫設計基礎
考點1:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織,數(shù)據(jù)操縱,數(shù)據(jù)維護,控制及保護和數(shù)據(jù)服務等 考點2:數(shù)據(jù)庫系統(tǒng)提供的數(shù)據(jù)語言:(1)
數(shù)據(jù)定義語言:該語言負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建(2)
數(shù)據(jù)操縱語言負責數(shù)據(jù)的操縱,包括查詢及增、刪、改等
(3)
數(shù)據(jù)控制語言負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等 考點3:數(shù)據(jù)庫系統(tǒng)由如下幾部分組成:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺與軟件平臺
考點4:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應用程序而不依賴于應用程序,數(shù)據(jù)獨立性分為物理獨立性和邏輯獨立性 考點5:數(shù)據(jù)庫的三級模式
(1)
概念模式:是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述,是全體用戶公共數(shù)據(jù)視圖(2)
外模式:是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式(3)
內(nèi)模式:它給出了數(shù)據(jù)庫物理存儲結構與物理存取方法 考點6:數(shù)據(jù)模型所描述的內(nèi)容有三個方面:(1)
數(shù)據(jù)結構:主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系(2)
數(shù)據(jù)操作:主要描述在相應數(shù)據(jù)結構上的操作類型與操作方式(3)
數(shù)據(jù)約束:主要描述數(shù)據(jù)結構內(nèi)數(shù)據(jù)間的語法、語義聯(lián)系 考點7:E-R模型
(1)E-R模型由三個基本概念組成:實體、聯(lián)系和屬性
(2)在E-R圖示法中:矩形表示實體集,橢圓形表示屬性,菱形表示聯(lián)系
考點8:關系模型的約束包括實體完整性約束、參照完整性約束、用戶自定義完整性約束 考點9:關系代數(shù)
并運算:關系R與S經(jīng)并運算后所得到的關系是由那些在R內(nèi)或在S內(nèi)的有序組 交運算:關系R與S經(jīng)交運算后所得到的關系是由那些即在R內(nèi)又在S內(nèi)的有序組 差運算:關系R與S經(jīng)差運算后所得到的關系是由那些在R內(nèi)但不在S內(nèi)的有序組 自然連接: 考點10:E-R圖與關系的轉換
E-R圖中實體與聯(lián)系都可以轉換成關系,屬性也可以轉換成關系的屬性 1.1 數(shù)據(jù)庫基礎知識
考點1 計算機數(shù)據(jù)管理的發(fā)展 1數(shù)據(jù)與數(shù)據(jù)處理
數(shù)據(jù)是指存儲在某一種媒體上能夠識別的物理符號。數(shù)據(jù)處理的中心問題是數(shù)據(jù)管理。2計算機數(shù)據(jù)管理(l)人工管理。(2)文件系統(tǒng)。(3)數(shù)據(jù)庫系統(tǒng)。
(4)分布式數(shù)據(jù)庫系統(tǒng)。(5)面向對象數(shù)據(jù)庫系統(tǒng)。3數(shù)據(jù)庫管理系統(tǒng)
為數(shù)據(jù)庫的建立、使用和維護而配置的軟件稱為數(shù)據(jù)庫管理系統(tǒng)DBMS(DataBase Management System)。
圖1-1 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)與程序的關系 考點2 數(shù)據(jù)庫系統(tǒng) 1有關數(shù)據(jù)庫的概念
(1)數(shù)據(jù)庫(DataBase):存儲在計算機存儲設備上、結構化的相關數(shù)據(jù)的集合。
(2)數(shù)據(jù)庫應用系統(tǒng)(DBAS):是由系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)出來的,面向某一類實際應用的應用軟件系統(tǒng)。
(3)數(shù)據(jù)庫管理系統(tǒng)(DBMS):對數(shù)據(jù)實行專門管理,提供安全性和完整性等統(tǒng)一機制,可以對數(shù)據(jù)庫的建立、使用和維護進行管理。
(4)數(shù)據(jù)庫系統(tǒng)(DBS):是指引進數(shù)據(jù)庫技術后的計算機系統(tǒng),實現(xiàn)有組織地、動態(tài)地存儲大量相關數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的便利手段。數(shù)據(jù)庫系統(tǒng)由硬件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及相關軟件、數(shù)據(jù)庫管理員和用戶等部分組成。2數(shù)據(jù)庫系統(tǒng)的特點
(l)實現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余。(2)采用特定的數(shù)據(jù)模型。(3)具有較高的數(shù)據(jù)獨立性。(4)具有統(tǒng)一的數(shù)據(jù)控制功能??键c3 數(shù)據(jù)模型 1實體的描述(1)實體。
(2)實體的屬性。(3)實體集和實體型。
2實體間聯(lián)系及聯(lián)系的種類(1)一對一聯(lián)系。(2)一對多聯(lián)系。(3)多對多聯(lián)系。3數(shù)據(jù)模型簡介
為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須有一定的結構,這種結構用數(shù)據(jù)模型來表示,通常有以下3種。(1)層次數(shù)據(jù)模型。(2)網(wǎng)狀數(shù)據(jù)模型。(3)關系數(shù)據(jù)模型。小提示:
數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS和數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是DBS包括DB和DBMS。1.2 關系模型
關系模型的用戶界面非常簡單,一個關系的邏輯結構就是一張二維表。這種用二維表的形式表示實體和實體間聯(lián)系的數(shù)據(jù)模型稱為關系數(shù)據(jù)模型。1關系術語
(l)關系:一個關系就是一張二維表,每個關系有一個關系名。在Visual FoxPro中一個關系存儲為一個文件,擴展名為DBF,稱為“表”。
對關系的描述稱為關系模式,一個關系模式對應一個關系的結構,格式為: 關系名(屬性名1,屬性名2,?,屬性名n)(2)元組:在一個二維表中,水平方向的行稱為元組,每一行為一個元組。(3)屬性:將二維表中垂直方向的列稱為屬性,每一列都有一個屬性名。(4)域:屬性的取值范圍,即不同元組對同一個屬性的取值所限定的范圍。
(5)關鍵字:屬性或屬性的組合,其值能夠唯一地標識一個元組。在Visual FoxPro中,主關鍵字和候選關鍵字就起唯一標志一個元組的作用。
(6)外部關鍵字:如果表中一個字段不是本表的主關鍵字或候選關鍵字,而是另一個表的主關鍵字或候選關鍵字,那么這個字段(屬性)就稱為外部關鍵字。2關系的特點
(1)關系必須規(guī)范化。
(2)在同一個關系中不能出現(xiàn)同名屬性,Visual FoxPro中表示為字段名的不同。(3)關系中不允許有完全相同的元組,即冗余。(4)在一個關系中元組的次序無關緊要。(5)在一個關系中列的次序無關緊要??键c5 關系運算
對關系數(shù)據(jù)庫進行查詢時,需要找到用戶感興趣的數(shù)據(jù),這就需要對關系進行一定的關系運算,關系的基本運算有兩類:傳統(tǒng)的集合運算和專門的關系運算。1傳統(tǒng)的集合運算
(1)并:兩個相同結構關系的并是由屬于這兩個關系的全部元組組成的集合。
(2)差:兩個相同結構關系的差是由屬于前一個關系的元組而不屬于后一個關系的元組組成的集合。例如,關系R和S的差結果是由屬于R但不屬于S的元組組成的集合。(3)交:兩個相同結構關系的交是由屬于這兩個關系所共有的元組組成的集合。2專門的關系運算
(1)選擇:從關系中找出滿足給定條件的元組的操作。(2)投影:從關系模式中指定若干個屬性組成新的關系:
(3)連接:關系的橫向結合,將兩個關系模式拼接成一個更寬的關系模式。
(4)自然連接:在連接運算中,按照字段值對應相等為條件進行的連接操作稱為等值連接。自然連接是去掉重復屬性的等值連接。小提示:
選擇和投影運算的操作對象只是一個表,相當于對一個二維表進行切割。連接運算則需要把兩個表作為操作對象。如果兩個表以上進行連接,應當兩兩進行連接。1.3 數(shù)據(jù)庫設計基礎 考點6 數(shù)據(jù)庫設計步驟 1設計原則
(l)關系數(shù)據(jù)庫的設計應遵從概念單一化“一事一地”的原則。(2)避免在表之間出現(xiàn)重復字段。
(3)表中的字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素。(4)用外部關鍵字保證有關聯(lián)的表之間的聯(lián)系。2設計步驟
利用Visual FoxPro來開發(fā)數(shù)據(jù)庫應用系統(tǒng),可以按照以下步驟來設計。(1)需求分析。(2)確定需求表C(3)確定需求字段。(4)確定聯(lián)系。(5)設計精確
1.4 Visual FoxPro系統(tǒng)概述 考點7 Visual FoxPro的特點(l)增強項目與數(shù)據(jù)庫管理。
(2)提高應用程序開發(fā)的生產(chǎn)率。(3)互操作性與支持Internet。(4)充分利用已有數(shù)據(jù)。2.1程序與程序文件 程序與程序文件
考點1 程序的概念、建立與執(zhí)行 1程序的概念
程序是能夠完成一定任務的命令集合。這組命令被存放在稱為程序文件或命令文件的文本文件中。當運行程序時,系統(tǒng)會按照一定的次序自動執(zhí)行包含在程序文件中的命令。2程序文件的建立與修改
程序文件的建立與修改一般是通過調(diào)用系統(tǒng)內(nèi)置的文本編輯器來進行的。其建立步驟如下。(l)打開文本編輯窗口。
(2)在文本編輯窗口中輸入程序內(nèi)容,此處所輸入的程序命令不會馬上被執(zhí)行。
(3)編輯完成后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件。3打開或修改程序文件的方法
(1)從“文件”菜單中選擇“打開”命令,彈出“打開”對話框。(2)在“文件類型”列表框中選擇“程序”。(3)在文件列表框中選定要修改的文件,并單擊“確定”按鈕。
(4)編輯修改后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件,若要放棄修改,可直接按Esc鍵,或從“文件”菜單中選擇“還原”命令。4程序文件的執(zhí)行
程序文件建立后,可使用多種方式、多次執(zhí)行它,常用的以下有兩種方式。(l)菜單方式。(2)命令方式。
考點2 簡單的輸入輸出命令
程序一般都包含數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出3個部分。1 INPUT命令
格式:INPUT[<字符表達式>]TO<內(nèi)存變量> 功能:該命令等待用戶從鍵盤輸入數(shù)據(jù),當用戶回車后,系統(tǒng)將表達式的值存入指定的內(nèi)存變量。
注釋:輸入的數(shù)據(jù)可以是常量、變量,也可以是更為一般的表達式。但不能不輸入任何內(nèi)容直接按回車鍵輸入字符串時必須加定界符,輸入邏輯型常量時要用圓點定界(如.T.,.F.),則輸入日期時間型常量時要用大括號(如{^2001-03-01})。2 ACCEPT命令
格式:ACCEPT[<字符表達式>]TO<內(nèi)存變量> 功能:該命令等待用戶從鍵盤輸入字符串,當用戶回車后,系統(tǒng)將表達式的值存入指定的內(nèi)存變量。
注釋:該命令只能接收字符串。用戶在輸入字符串時不需要加定界符;否則,系統(tǒng)會把定界符作為字符串本身的一部分。如果不輸入任何內(nèi)容而直接按回車鍵,系統(tǒng)會把空串賦給指定的內(nèi)存變量。3 WAIT命令
格式:WAIT[<字符表達式>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]] [NOWAIT][CLEARINOCLEAR][TIMEOUT<數(shù)值表達式>] 功能:該命令顯示字符表達式的值作為提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標時繼續(xù)程序運行。
注釋:<內(nèi)存變量>用來保存用戶輸入的字符,其類型為字符型。若用戶按的是Enter鍵或單擊了鼠標,那么<內(nèi)存變量>中保存的將是空串若不選TO <內(nèi)存變量>短語,則輸入的單字符不保留。小提示:
如果用DO命令執(zhí)行查詢文件、菜單文件,在文件名中必須要包括擴展名(QPR、MPR)。7.2 程序的基本結構
程序結構是指程序中命令或語句執(zhí)行的流程結構,包括3種基本結構:順序結構、選擇結構和循環(huán)結構??键c3 順序結構
順序結構是最簡單的程序結構,它是按命令在程序中出現(xiàn)的先后次序依次執(zhí)行。考點4 選擇結構
支持選擇結構的語句包括條件語句和分支語句。1條件語句 格式: IF<條件> <語句序列1> [ELSE> <語句序列2>] ENDIF 功能:該語句根據(jù)<條件>是否成立從兩組代碼中選擇一組執(zhí)行。語句的執(zhí)行流程圖如圖7-1和圖7-2所示。
圖7-1有ELSE的選擇語句
圖7-2無ELSE的選擇語句 2分支語句
格式:DO CASE CASE<條件1> <語句序列1> CASE<條件2> <語句序列2> ……
CASE<條件n> <語句序列n> [OTHERWISE <語句序列>] ENDCASE
功能:語句執(zhí)行時,依次判斷CASE后面的條件是否成立。分支語句實現(xiàn)的是一種擴展的選擇結構,可以根據(jù)條件從多組代碼中選擇一組執(zhí)行。分支語句的流程如圖7-3所示。
圖7-3 多分支語句 考點5 循環(huán)結構
循環(huán)結構也稱為重復結構,是指程序在執(zhí)行的過程中,其中的某段代碼被重復執(zhí)行若一干珠。被重復執(zhí)行的代碼段,通常稱為循環(huán)體。Visual FoxPro支持循環(huán)結構的語句包括:DO WHILE-ENDDO、FOR-ENDFOR和SCAN-ENDSCAN。1 DO WHILEENDFOR語句 格式:
FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長>] <循環(huán)體> ENDFOR 功能:首先將初值賦給循環(huán)變量,然后判斷循環(huán)條件是否成立(若步長為正值,則循環(huán)條件為<循環(huán)變量><=<終值>;若步長為負值,則循環(huán)條件為<循環(huán)變量>>=<終值>)。如果成立,則執(zhí)行循環(huán)體,然后循環(huán)變量增加一個步長值,并再次判斷循環(huán)條件,一直到條件為假時,退出循環(huán)體。該語句通常用于實現(xiàn)循環(huán)次數(shù)已知情況下的循環(huán)結構〕 3 SCAN-ENDSCAN語句 格式:
SCAN[<范圍>][FOR<條件1>][WHERE<條件2>] <循環(huán)體> ENDSCAN
功能:該循環(huán)語句一般用于處理表中記錄,語句可指明需要處理的記錄范圍及應滿足的條件。執(zhí)行該語句時,記錄指針自動、依次地在當前表的指定范圍內(nèi)滿足條件的記錄上移動,對每一條記錄執(zhí)行循環(huán)體內(nèi)的命令。7.3 多模塊程序
模塊是一個相對獨立的程序段,它可以被其他模塊調(diào)用,也可以調(diào)用其他模塊。通常,把被其他模塊調(diào)用的模塊稱為子程序,把調(diào)用其他模塊而沒有被其他模塊調(diào)用的模塊稱為主程序。應用程序一般都是多模塊程序,包含多個程序模塊??键c6 模塊的定義和調(diào)用 1模塊的定義
在Visual FoxPro中,模塊可以是命令文件,也可以是過程。過程定義的語句格式為: PROCEDURE|FUNCTION<過程名> <命令序列> [RETURN[<表達式>]] [ENDPROCIENDFUNC] 功能說明如下。
(1)PROCEDURE|FUNCTION命令表示一個過程的開始,并命名過程。過程名必須以字母或下劃線開頭,可以包含數(shù)字、字母和下劃線。
(2)當程序執(zhí)行到RETURN命令時,控制將轉回到調(diào)用處(或命令窗口),并返回表達式的值。若默認RETURN命令,系統(tǒng)將在過程結束處自動調(diào)用一條隱含的RETURN命令。(3)ENDPROC|ENDFUNC命令表示一個過程的結束。如果默認此語句,那么過程結束于下一條PROCEDURE|FUNCTION命令或文件尾。2模塊的調(diào)用
模塊調(diào)用的格式有兩種。
(1)使用DO命令,格式如下。DO<文件名>|<過程名>(2)在名字后加一對小括號,格式如下。<文件名>|<過程名>()3打開過程文件 命令格式如下。
SET PROCEDURE TO[<過程文件1>[,<過程文件2>,?][ADDITIVE] 4關閉過程文件 命令格式如下。
RELEASE PROCEDURE<過程文件1>[,<過程文件2>,?] 考點7 參數(shù)傳遞
模塊程序可以接收調(diào)用程序傳遞過來的參數(shù)。
(1)PARAMETERS<形參變量1>[,<形參變量2>,?]。(2)LPARAMETERS<形參變量1>[,<形參變量2>,?]。
說明PARAMETERS聲明的形參被看做是模塊程序中建立的私有變量,LPARAMETERS聲明的形參被看做是模塊程序中建立的局部變量。除此之外,兩條命令無其他區(qū)別。不管是PARAMETERS或LPARAMETERS,都應該是模塊程序的第一條可執(zhí)行命令。(1)調(diào)用參數(shù)調(diào)用模塊程序參數(shù)的格式如下。
DO<文件名>|<過程名>WITH<實參1>[,<實參2>,?] <文件名>|<過程名>(<實參1>[,<實參2>,?])說明:實參可以是常量、變量或一般表達式,調(diào)用模塊程序時,形參的數(shù)目不能少于實參的數(shù)目,當形參數(shù)目多于實參數(shù)目時,多余的形參取初值邏輯假.F.。
(2)參數(shù)的傳遞。模塊中參數(shù)的傳遞分為兩種:按值傳遞(實參一般為常量和表達式)和引用傳遞(實參一般為變量)。參數(shù)的傳遞方式可以重新設置,格式如下。SET UDFPARMS TO VALUE|REFERENCE 考點8 變量的作用域
變量的一個重要屬性是作用域。變量的作用域指的是變量在什么范圍內(nèi)是有效或能夠被訪問的。在Visual FoxPro中,可分為公共變量、私有變量和局部變量3類。1.公共變量
在任何模塊中都可使用的變量稱為公共變量,公共變量必須先定義后使用,格式如下。PUBLIC<內(nèi)存變量表> 說明:該命令是建立公共的內(nèi)存變量,并賦以初值邏輯假.F.。建立好的公共變量一直有效,即使程序結束返回命令窗口也不會消失,只有執(zhí)行CLEAR MEMORY,RELEASE或QUIT等命令后,才能被釋放。2私有變量
在程序中直接使用(沒有預先聲明),而由系統(tǒng)自動隱含建立的變量都是私有變量。私有變量的作用域是建立它的模塊及其下屬的各層模塊。3局部變量
局部變量只能在建立它的模塊中使用,不能在上層或下層模塊中使用。程序結束時,自動釋放局部變量。格式如下 LOCAL<內(nèi)存變量表> 說明:該變量同樣給建立的內(nèi)存變量賦以初值邏輯假.F.,也必須先定義后使用。當子程序中定義的變量名與主程序中同名時,為避免子程序中的變量值改變主程序中的變量值,可在子程序中使用PRIVATE命令隱藏主程序中可能存在的變量,使這些變量在子程序中暫時無效。格式如下。
(1)PRIVATE<內(nèi)存變量表>。
(2)PRIVATE ALL[LIKE<通配符>|EXCEPT<通配符>]。說明:該命令并不建立內(nèi)存變量,它只是隱藏指定的在上層模塊中可能已經(jīng)存在的內(nèi)存變量,但是當模塊程序返回到上層模塊時,被隱藏的變量就自動恢復有效性,保持原值。7.4 程序調(diào)試
考點9 調(diào)試器環(huán)境
程序調(diào)試是指在發(fā)現(xiàn)程序有錯誤的情況下,確定出錯位置并糾正錯誤。計算機一般能夠發(fā)現(xiàn)程序的出錯位置,但對于計算機不能發(fā)現(xiàn)的錯誤,只能由用戶自己來查錯。Visual FoxPro提供的功能強大的調(diào)試工具—調(diào)試器,可幫助我們進行這項工作。調(diào)用調(diào)試器的方法一般有兩種。
(l)選擇“工具”菜單中的“調(diào)試器”命令。(2)在命令窗口中輸入DEBUG命令??键c10 設置斷點
可以設置以下4種類型的斷點。
(1)在定位處中斷:可指定一行代碼,當程序調(diào)試執(zhí)行到該行時,中斷程序運行。
(2)如果表達式值為真,則在定位處中斷:指定一行代碼及一個表達式,當程序調(diào)試執(zhí)行到該行代碼時,如果表達式值為真,就中斷程序運行。
(3)當表達式值為真時中斷:可以指定一個表達式,在程序調(diào)試執(zhí)行過程中,當該表達式值為邏輯真.T.時,中斷程序運行。
(4)當表達式值改變時中斷:可以指定一個表達式,在程序調(diào)試執(zhí)行過程中,當該表達式值改變時,中斷程序運行??键c11 “調(diào)試”菜單
“調(diào)試”菜單包含執(zhí)行程序、選擇執(zhí)行方式、終止程序執(zhí)行、修改程序,以及調(diào)整程序執(zhí)行速度等命令。各命令具體功能如下。
(1)運行:執(zhí)行在跟蹤窗口中打開的程序:
(2)繼續(xù)執(zhí)行:當程序被中斷時,該命令可使程序在中斷處繼續(xù)往下執(zhí)行。(3)取消:終止程序的調(diào)試執(zhí)行,并關閉程序。
(4)定位修改:終止程序的調(diào)試執(zhí)行,然后在文本編輯窗口中打開調(diào)試程序。
(5)跳出:以連續(xù)方式而非單步方式繼續(xù)執(zhí)行被調(diào)用模塊程序中的代碼,然后在調(diào)用程序的調(diào)用語句的下一行處中斷。
(6)單步:單步執(zhí)行下一行代碼。如果下一行代碼調(diào)用了過程或者方法程序,那么該過程或者方法程序在后臺執(zhí)行。
(7)單步跟蹤:單步執(zhí)行下一行代碼。
(8)運行到光標處:從當前位置執(zhí)行代碼直至光標處中斷。
(9)調(diào)速:打開“調(diào)整運行速度”對話框,設置兩代碼行執(zhí)行之間的延遲秒數(shù)。
(10)設置下一條語句:程序中斷時選擇該命令,可使光標所在行成為恢復執(zhí)行后要執(zhí)行的語句。
3.1 Visual FoxPro數(shù)據(jù)庫及其建立 考點1 建立和使用數(shù)據(jù)庫 1數(shù)據(jù)庫的建立
(1)在項目管理器中建立數(shù)據(jù)庫。(2)通過“新建”對話框建立數(shù)據(jù)庫。(3)使用命令建立數(shù)據(jù)庫,格式為:
CREATE DATABASE[DatabaseName |?] 2數(shù)據(jù)庫的打開
(1)在項目管理器中打開。(2)通過“打開”對話框打開數(shù)據(jù)庫。(3)使用命令打開數(shù)據(jù)庫,格式為:
OPEN DATABASE[FileName |?][EXCLUSIVE I SHARED] [NOUPDATE] [VALIDATE] 考點2 修改和刪除數(shù)據(jù)庫
Visual FoxPro在建立數(shù)據(jù)庫時建立了擴展名分別為dbc、dct和dcx的3個文件,用戶不能直接修改這些文件。
Visual FoxPro中修改數(shù)據(jù)庫實際是打開數(shù)據(jù)庫設計器,完成數(shù)據(jù)庫中各種對象的建立、修改和刪除等操作。
可以有3種方法打開數(shù)據(jù)庫設計器。(1)從項目管理器中打開數(shù)據(jù)庫設計器。(2)從“打開”對話框中打開數(shù)據(jù)庫設計器。(3)使用命令打開數(shù)據(jù)庫設計器,格式為: MODIFY DATABASE[DatabaseName|?] 在項目管理器中不管刪除還是移去數(shù)據(jù)庫文件,都不會刪除其所包含的各個對象做口數(shù)據(jù)表)。如果要在刪除數(shù)據(jù)庫的同時刪除其所包含的數(shù)據(jù)表,就必須使用命令,格式為: DELETE DATABASE DatabaseName|?[DELETETABLES][RECYCLE] 小提示:
在Visual FoxPro中,Open DataBase和Modify DataBase命令的區(qū)別在于:Open DataBase打開的只是數(shù)據(jù)庫的工作環(huán)境,并不會進入數(shù)據(jù)庫設計器;Modify DataBase是打開數(shù)據(jù)庫設計器。4.2 建立數(shù)據(jù)庫表
考點3 在數(shù)據(jù)庫中建立表 在數(shù)據(jù)庫中建立數(shù)據(jù)表,最直接的方法就是在數(shù)據(jù)庫設計器中利用鼠標右鍵單擊空白處,選擇“新建表”命令,在彈出的表設計器中設置數(shù)據(jù)表結構。另外可以在命令窗口利用OPEN DATA命令先打開數(shù)據(jù)庫,然后利用CREATE命令打開表設計器進行數(shù)據(jù)表設計,如圖4-l所示。
圖4-1 表設計器 1字段名
(l)自由表字段名最長為10個字符。(2)數(shù)據(jù)庫表字段名最長為128個字符。(3)字段名必須以字母或漢字開頭。
(4)字段名可以由字母、漢字、數(shù)字和下劃線組成。(5)字段名中不能包含空格。2字段類型和寬度
(1)字符型:可以是字母、數(shù)字等各種字符型文本,如用戶名稱。(2)貨幣型:貨幣單位,如貨物價格。(3)數(shù)值型:整數(shù)或小數(shù),如訂貨數(shù)量。(3)浮點型:功能類似于“數(shù)值型”,其長度在表中最長可達20位。(4)日期型:由年、月、日構成的數(shù)據(jù)類型,如訂貨日期。
(5)日期時間型:由年、月、日、時、分、秒構成的數(shù)據(jù)類型,如員工上班的時間。(6)雙精度型:雙精度數(shù)慎類型,一般用于要求精度很高的數(shù)據(jù)。(7)整型:不帶小數(shù)點的數(shù)值類型,如訂單的行數(shù)。
(8)邏輯型:值為“真”(.T.)或假(.F.),如表示訂單是否已執(zhí)行完。
(9)備注型:不定長的字符型文本。在表中占4個字節(jié),表備注型文件的擴展名為FPT。(10)通用型:用于標記電子表格、文檔、圖片等OLE對象,在表中占4個字節(jié)。(11)字符型(二進制)。(12)備注型(二進制)。3空值
一個字段是否允許為空值與實際應用有關,比如作為關鍵字的字段是不允許為空值的,而那些在插入記錄時允許暫缺的字段值往往允許為空值。4字段有效性組框
在字段有效性組框中可以定義字段的有效性規(guī)則、違反規(guī)則時的提示信息和字段的默認值。5顯示組框
在顯示組框下可以定義字段顯示的格式、輸入的掩碼和字段的標題。輸入掩碼是字段的一種屬性,用限制或控制用戶輸入的格式。標題用于字段顯示時的標題,如果不指定標題則顯示字段名。當字段名是英文或縮寫時,則通過指定標題可以使界面更友好。6字段注釋
可以為每個字段添加注釋,便于日后或其他人對數(shù)據(jù)庫進行維護。考點4 修改表結構 在Visual FoxPro中可以對表結構任意修改,修改表結構和建立表結構時,表設計器界面完全一樣。修改數(shù)據(jù)表結構時,首先應該用USE命令打開要修改的數(shù)據(jù)表,然后利用MODIFY STRUCTURE打開表設計器進行修改,具體操作有以下幾種。(1)修改已有字段。(2)添加新字段。(3)刪除不用的字段。4.3 表的基本操作
考點5 使用瀏覽器操作表
在交互式工作方式下,最簡單、方便的方法就是使用BROWSE瀏覽器瀏覽表,打開瀏覽器的方法有多種。在項目管理器中將數(shù)據(jù)庫展開至表,然后單擊“瀏覽”按鈕,或直接在窗口中輸入BROWSE命令(首先應該打開表文件)。1瀏覽器操作
(1)下一記錄(下箭頭鍵)。(2)前一記錄(上箭頭鍵)。(3)下一頁(PageDown鍵)。(4)上一頁(PageUp鍵)。(5)下一字段(Tab鍵)。
(6)前一字段(Shift+Tab鍵)。2修改記錄
只需將光標定位到要修改的記錄和字段上,就可以進行修改了。3刪除記錄 Visual FoxPro中刪除記錄有邏輯刪除和物理刪除兩種,邏輯刪除只在記錄旁做刪除標記(如圖4-2所示),必要時可以進行恢復物理刪除是在邏輯刪除的基礎上真正地將記錄從表中刪除。要在瀏覽器中刪除有刪除標記的記錄,可選擇“表/徹底刪除”菜單命令。
圖4-2 增加和刪除記錄
考點6 增加、刪除、修改和顯示記錄的命令 1增加記錄
APPEND命令是在表的尾部增加記錄,格式有如下兩種。格式1:APPEND 格式2:APPEND BLANK 2插入記錄
格式:INSERT [BEFORE][BLANK] 3刪除記錄
刪除記錄有物理刪除和邏輯刪除兩種,Visual FoxPro用來刪除記錄的命令如下。(1)設置刪除標記的命令
格式:DELETE [FOR lExpressionl] 說明:如果不使用FOR短語指定邏輯條件,則只刪除當前記錄,否則邏輯刪除滿足條件的所有記錄。
(2)恢復記錄的命令。
格式:RECALL [FOR lExpressionl] 說明:使用該命令恢復表中邏輯刪除的記錄,短語FOR的功能同上。(3)物理刪除有刪除標記的記錄 格式:PACK 說明:此命令用來物理刪除當前表中所有帶刪除標記的記錄。(4)物理刪除表中的全部記錄 格式:ZAP 說明:不管表中記錄是否帶有刪除標記,此命令可以一次性將當前表中的記錄全部物理刪除,但表結構仍保留使用此命令相當于DELETE ALL與 PACK的連用。4修改記錄
在Visual FoxPro中可以交互修改記錄,也可以用指定值直接修改記錄。(1)用EDIT或CHANGE命令交互式修改。(2)用REPLACE命令直接修改。5顯示記錄
格式:LIST/DISPLAY [[FIELDS]FieldList][FOR LExpressionl][OFF] [TO PRINTER[PROMPT]|TO FILE FileName] 考點7 查詢定位的命令(1)用GOTO命令直接定位(2)SKIP命令
(3)用LOCATE命令定位。
LOCATE命令是按條件定位記錄位置,格式為: LOCATE FOR IExpressionl LOCATE命令常用結構如下。LOCATE FOR IExpression1 DO WHILE FOUND()****處理數(shù)據(jù)*** CONTINUE ENDDO 小提示:
連續(xù)使用DELETE ALL和PACK命令,其操作結果與ZAP命令一樣,都可以將表中的所有記錄一次性物理刪除。4.4 索引與排序
考點8 索引的基本概念
索引是對表中的記錄按照某種邏輯順序重新排列。
(l)主索引:在指定的字段或表達式中不允許出現(xiàn)重復值的索引,且一個表只能創(chuàng)建一個主索引。
(2)候選索引:具有與主索引相同的性質(zhì)和功能,但一個表中可以創(chuàng)建多個候選索引,其指定的字段或表達式中也不允許出現(xiàn)重復值。
(3)唯一索引:它的“唯一性”是指索引項的唯一,而不是字段值的唯一。但在使用該索引時,重復的索引段值只有唯一一個值出現(xiàn)在索引項中。
(4)普通索引:不僅允許字段中出現(xiàn)重復值,并且索引項中也允許出現(xiàn)重復值。考點9 索引的建立 1單項索引
在表設計器界面中有“字段”、“索引”和“表“3個選項卡,在“字段”選項卡中定義字段時就可以直接指定某些字段是否為索引項,用鼠標單擊定義索引的下拉列表框可以看到3個選項:無、升序和降序(默認是無)。如果選定升序或降序,則在對應的字段上建立一個普通索引,索引名與字段名同名,索引表達式就是對應的字段。2復合字段索引
(1)在“索引”選項卡中的索引名欄目中輸入索引名。(2)在索引類型的下拉框中選擇索引類型。
(3)單擊表達式欄右側的按鈕,打開表達式生成器。
(4)在“表達式”文本框中輸入索引表達式(如圖4-3所示),最后單擊“確定”按鈕。
圖4-3 表達式生成器界面
3使用命令建立索引
格式:INDEX ON eExpression TO IDXFileName | TAG TagName[OF CDXFileName] [FOR lExpression][COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] 從索引的組織方式來講,索引共有3種類型。(1)單獨的IDX索引,是一種非結構索引。
(2)采用非默認名的CDX索引,也是一種非結構復合索引。(3)與表同名的CDX索引,是結構復合索引。結構復合索引文件可隨表的打開而打開,在同一個索引文件中能包含多個索引方案或索引關鍵字,在添加、更改或刪除記錄時自動維護索引。考點10 索引的使用
(l)打開索引文件,格式為: SET INDEX TO Indexfilelist(2)設置當前索引,格式為:
SET ORDER TO[nIndexNumber |[TAG]TagName][ASCENDING|DESCENDING](3)使用索引快速定位,格式為:
SEEK eExpression[ORDER nIndexNumber|[TAG]TagName][ASCENDING| DESCENDING](4)刪除索引,格式為:
DELETE TAG TagNamel
&&TagName1為索引名 要刪除全部索引,可使用命令:DELETE TAG ALL 考點11 排序
索引可以使用戶按照某種順序瀏覽或查找表中的記錄,這種順序是邏輯的,如要對表中的記錄按物理順序重新排列,可使用SORT命令,格式為: SORT TO TableName ON FieldNainel[/A}/D][/C][,F(xiàn)ieldName2[/A|/D][/C]?][ASCEND ING | DESCENDING][FOR lExpressionl][FIELDS FieldNameList] 小提示:
在數(shù)據(jù)庫表中只能有一個主索引,且只能在表設計器中建立。其他3種索引可以建立多個,既能在表設計器中建立,也能以命令方式建立,但在自由表中不能為其創(chuàng)建主索引,只能創(chuàng)建后3種索引,同樣也可以建立多個。4.5 數(shù)據(jù)完整性
考點12 實體完整性與主關鍵字
(1)實體完整性是保證表中記錄唯一的特性,即在同一個表中不允許有重復的記錄出現(xiàn)。在Visual Pro中通過主索引和候選索引來保證數(shù)據(jù)的實體完整性。
(2)如果一個字段的值或幾個字段的值能夠唯一標志表中的一條記錄,則稱這個字段為候選關鍵字。在Visual FoxPro中將主關鍵字稱做主索引,將候選關鍵字稱為候選索引。考點13 參照完整性與表之間的關聯(lián) 1建立表之間的聯(lián)系
參照完整性與表之間的聯(lián)系有關,其含義大致是:當插入、刪除或修改一個表中的數(shù)據(jù)時,通過參照引用相互關聯(lián)的另一個表中的數(shù)據(jù),檢查對表的數(shù)據(jù)操作是否正確。
在數(shù)據(jù)庫設計器中設計表之間的聯(lián)系時,要在父表中建立主索引,在子表中建立普通索引,然后通過父表主索引和子表的普通索引建立起兩個表之間的聯(lián)系。2設置參照完整性約束
建立參照完整性之前,首先必須清理數(shù)據(jù)庫,即物理刪除表中被邏輯刪除的記錄,然后選擇兩個關聯(lián)表之間的連線并選擇“數(shù)據(jù)庫”、“編輯參照完整性”菜單命令,打開如圖4-4所示的“參照完整性生成器”對話框。
圖4-4 “參照完整性生成器”對話框 小提示:
欲建立兩表之間的聯(lián)系,首先用鼠標選中一個表的主索引,按住鼠標左鍵不放,并拖動鼠標到另一個表的索引上,這時鼠標箭頭變成小矩形狀,最后釋放鼠標。4.6 自由表
考點14 數(shù)據(jù)庫表與自由表
自由表是不屬于任何數(shù)據(jù)庫的表。在沒有打開數(shù)據(jù)庫時,所建立的表就是自由表。數(shù)據(jù)庫表與自由表之間可以相互轉化。1建立自由表的方法
(1)在項目的“數(shù)據(jù)”選項卡中選擇“自由表”,單擊“新建”按鈕。
(2)在沒有打開數(shù)據(jù)庫的情況下,通過“新建”對話框,選擇“表”并單擊“新建文件”按鈕。
(3)在沒有打開數(shù)據(jù)庫的情況下,在命令窗口輸入CREATE命令,新建自由表。2數(shù)據(jù)庫表相對于自由表的特點
(l)數(shù)據(jù)庫表可以使用長表名,在表中可以使用長字段名。(2)可以為數(shù)據(jù)庫表中的字段指定標題和添加注釋。(3)可以為數(shù)據(jù)庫表中的字段指定默認值和輸入掩碼。(4)數(shù)據(jù)庫表的字段有默認的控件類。
(5)可以為數(shù)據(jù)庫表規(guī)定字段級規(guī)則和記錄級規(guī)則。
(6)數(shù)據(jù)庫表支持主關鍵字、參照完整性和表之間的聯(lián)系。(7)支持INSERT,UPDATE和DELETE事件的觸發(fā)器。考點15 將自由表添加到數(shù)據(jù)庫中
(1)在數(shù)據(jù)庫設計器中可利用“數(shù)據(jù)庫”→“添加表”菜單命令,在“打開”對話框中選擇自由表文件,將其添加到數(shù)據(jù)庫中。
(2)直接用命令方式將自由表添加到當前數(shù)據(jù)庫中,格式為: ADD TABLE TableName|?[NAME LongTableName] 考點16 從數(shù)據(jù)庫中移出表
(1)直接利用命令移出數(shù)據(jù)庫表,格式為:
REMOVE TABLE TableName |?[DELETE][RECYCLE](2)從項目管理器中移出數(shù)據(jù)庫。(3)從數(shù)據(jù)庫設計器中移出數(shù)據(jù)庫。4.7 多個表的同時使用
在Visual FoxPro中,一次可以打開多個數(shù)據(jù)庫,每個數(shù)據(jù)庫都可以打開多個數(shù)據(jù)表??键c17 多工作區(qū)的概念
指定工作區(qū)的命令格式為SELECT nWorkArea | cTableAlias,每個表打開后都有兩個默認別名,一個是表的自身名,另一個是工作區(qū)所對應的別名。在前10個工作區(qū)中指定的默認別名是工作區(qū)字母A~J,其后面的工作區(qū)所對應的別名為W11~W32767。
另外還可以在USE命令中通過ALIAS短語指定表別名。
例如:USE學生表IN 1 ALIAS student,為學生表指定了別名student。考點18 使用不同工作區(qū)的表
除了使用SELECT命令切換不同的工作區(qū)之外,也可以在一個工作區(qū)使用其他工作區(qū)的數(shù)據(jù)表。即通過短語:IN nWorkArea|cTableAlias。在表別名后加上“.”或“->”操作符,可在一個工作區(qū)中直接調(diào)用其他工作區(qū)中數(shù)據(jù)表的記錄。例如當前工作區(qū)號為2,要調(diào)用1區(qū)上學生表中的班級號的相關字段,可使用命令:
學生表.班級號 或學生表->班級號或A.班級號或A->班級號 考點19 表之間的關聯(lián)
使用SET RELATION命令建立表間記錄指針的臨時聯(lián)系(關聯(lián))。
格式:SET RELATION TO eExpressionl INTO nWorkAreal I cTableAliasl。
說明:eExpressionl是指建立臨時聯(lián)系的索引關鍵字,一般是父表的主索引,子表的普通索引。用工作區(qū)號 nWorkAreal或表的別名cTableAlias I說明臨時聯(lián)系是由當前工作區(qū)的表到哪個表。利用SET RELATION TO命令將取消當前表到所有表的臨時聯(lián)系。4.1 SQL概述 5.1 SQL概述 考點1 概述 1概念
SQL是結構化查詢語言Structured Query Language的縮寫。它包括數(shù)據(jù)查詢、數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制4部分。Visual FoxPro在SQL方面支持數(shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)操縱功能。另外,由于Visual FoxPro自身在安全控制方面的缺陷,所以它沒有提供數(shù)據(jù)控制功能。2 SQL語言的特點
(1)一種一體化的語言。
(2)一種高度非過程化的語言。(3)語言非常簡潔。
(4)可以直接以命令方式交互使用,也可以以程序方式使用。5.2 查詢功能
SQL的核心是查詢,基本形式由SELECT-FROM-WHERE查詢塊組成,多個查詢塊可嵌套執(zhí)行,如表5-1所示。
表5-1 SQL命令動詞
考點2 簡單查詢 1簡單查詢
簡單查詢是由SELECT和FROM短語構成的無條件查詢,或由SELECT,F(xiàn)ROM和WHERE短語構成的條件查詢。2簡單的連接查詢
連接是關系的基本操作之一,連接查詢是一種基于多個關系的查詢。3嵌套查詢
嵌套查詢所要求的結果出自一個關系,但關系的條件卻涉及多個關系。其內(nèi)層基本上也是一個SELECT-FROM-WHERE查詢語句。這種簡單嵌套查詢,可使用謂詞IN或NOT IN來判斷在外層的查詢條件中是否包含內(nèi)層查詢的結果??键c3 特殊運算符號 1 BETWEEN?AND?
含義:該查詢的條件是在??范圍之內(nèi),相當于用AND連接的一個邏輯表達式。2 LIKE 含義:它是一個字符串匹配運算符,與之搭配使用的通配符包括“*”和“?”??键c4 排序
使用SQL SELECT可以將查詢結果進行排序,排序的短語是ORDER BY。格式:ORDER BY Order_Item[ASCIDESC][,Order_Item[ASC|DESC]?] 說明:可以按升序(ASC)或降序(DESC)排序,允許按一列或多列排序。考點5 計算查詢 1簡單的計算查詢
SQL不僅具有一般的檢索能力,而且還有計算方式的檢索,用于計算檢索的函數(shù)有:COUNT(計數(shù))、SUM(求和)、AVG(計算平均值)、MAX(求最大值)及MIN(求最小值)。2分組與計算查詢
在SQL SELECT中可以利用GROUP BY子句進行分組計算查詢。
格式:GROUP BY GroupColumn[,GroupColumn?][HAVING FilterCondition] 說明:可以按一列或多列分組,還可以用HAVING子句進一步限定分組的條件。它必須跟在GROUP BY子句之后,不可單獨使用,與WHERE子句并不矛盾??键c6 別名和自連接查詢
(1)SQL語句允許在二OM短語中為關系定義別名,格式為:一 <關系名><別名>(2)SQL不僅可以對多個關系進行連接操作,也可以將同一關系與其自身進行連接,這種連接就稱為自連接。在關系的自連接操作中,別名是必不可少的??键c7 使用量詞和謂詞的查詢
與嵌套查詢或子查詢有關的運算符,除了IN和NOT IN運算符外,還有兩類與子查詢有關的運算符,它們有以下兩種格式。
(1)<表達式><比較運算符>[ANY I ALL | SOME](子查詢)(2)[NOT]EXISTS(子查詢)EXISTS是謂詞,EXISTS或NOT EXISTS是用來檢查在子查詢中是否有結果返回,即存在元組或不存在元組。其本身并沒有進行任何運算或比較,只用來返回子查詢結果。考點8 超鏈接查詢
(1)在新的SQL標準中支持兩個新的關系連接運算符,這兩個新的連接運算是左連接(*=)和右連接=*):首先保證一個表中滿足條件的元組都在結果表中,然后將滿足連接條件的元組與另一個表的元組進行連接,不滿足連接條件的則應將來自另一個表的屬性值置為空值。在一般SQL中超鏈接運算符是“*=”(左連接)和“=*”(右連接)。(2)在Visual FoxPro中不支持超鏈接運算符“*=”和“=*”,Visual FoxPro有專門的連接運算。下面拼出SQL中超鏈接的部分語句格式: SELECT…
FROM Table INNER|LEFT|RIGHT|FULL JOIN Table ON JoinCondition WHERE…
考點9 Visual FoxPro中SQL SELECT的幾個特殊選項(l)顯示部分結果,格式為: TOP nExpr[PERCENT](2)將查詢結果存放到數(shù)組中,格式為: INTO ARRAY ArrayName(3)將查詢結果存放到臨時文件中,格式為: INTO CURSOR CursorName(4)將查詢結果存放到永久表中,格式為: INTO DBF|TABLE TableName(5)將查詢結果存放到文本文件中,格式為: TO FILE FileName[ADDITIVE](6)將查詢結果直接輸出到打印機,格式為: TO PRINTER[PROMPT] 5.3 操作功能 考點10 插入
Visual FoxPro支持兩種SQL插入命令的格式,一種是標準格式,另一種是特殊格式。1標準格式
INSERT INTO dbf name[(frame 1[,fname2,?])] VALUES(eExpressionl[,eExpression2,?])2特殊格式
INSERT INTO dbf _name FROM ARRAY ArrayName|FROM MEMVAR 考點11 更新
SQL的數(shù)據(jù)更新命令格式如下: UPDATE TableName SET Column_Namel=eEpressionl[,Column_Name2=eExpression2?] WHERE Condition 說明:利用WHERE字句指定條件,以更新滿足條件的一些記錄的字段值,并巨一次可更新多個字段;如果不使用WHERE子句,則更新全部記錄??键c12 刪除
SQL從表中刪除數(shù)據(jù)的命令格式如下:
DELETE FROM TableName[WHERE Condition] 說明:FROM指定從哪個表中刪除記錄,WHERE指定被刪除的記錄所滿足的條件,如果不使用WHERE子句,則刪除該表中的全部記錄。小提示:
當一個表定義一個主索引或候選索引后,由于相應的字段具有關鍵字的特性,即不能為空,所以只能用此命令插入記錄、)APPEND和INSERT都是插入一條空白記錄再輸入各字段的值,故不能用它們來插入記錄。5.4 定義功能 考點13 表的定義
利用SQL命令建立的數(shù)據(jù)表同樣可以完成在表設計器中設計表的所有功能。格式:CREATE TABLE I DBF TableNamel[NAME LongTableName][FREE](FieldNarnel FieldType[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK IExpressionl [ERROR cMessageTextl]] [DEFAULT eExpressionl] [PRIMARY KEY I UNIQUE] [PEFERENCES TableName2[AG TagName1]] [NOCPTRANS] [,F(xiàn)ieldName2?] [,PRIMARY KEY eEpression2 TAG TagName2|,UNIQUE eExpression3 TAG TagName3] [,F(xiàn)OREIGN KEY eExpression4 TagName4[NODUP] REFERENCES TableName3 [TAG TagName5]] [,CHECK lExpression2[ERROR cMessageText2]])|FROM ARRAY ArravNasne 說明:此命令除了建立表的基本功能外,還包括滿足實體完整性的主關鍵字(主索引)PRIMARY KEY、定義域完整性的CHECK約束及出錯提示信息ERROR、定義默認值DEFAULT等,另外還有描述表之間聯(lián)系的FOREIGN KEY和REFERENCES等。考點14 表的刪除
利用SQL命令刪除表,可直接使用語句,格式為: DROP TABLE Table_name 說明:如果刪除的是自由表,則應該將當前打開的數(shù)據(jù)庫先關閉,才能進行刪除。如果刪除數(shù)據(jù)庫表,則要先打開數(shù)據(jù)庫,在數(shù)據(jù)庫中進行操作二否則,即使刪除了數(shù)據(jù)庫表,但記錄在數(shù)據(jù)庫中的信息并沒有被刪除,此后會出現(xiàn)錯誤提示??键c15 表結構的修改
修改表結構的命令是ALTER TABLE,該命令有3種格式。
(1)ALTER TABLE TableNamel ADD| ALTER[COLUMN]FieldNamel FieldTvpe[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK lExpressionl[ERROR cMessageTextl ]][DEFAULT eExpressionl] [PRIMARY KEY |UNIQUE] [REFERENCES TableName2[TAG TagNamel〕](2)ALTER TABLE TableNamel ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET EFAULTeExpression2][SET CHECK lExpression2[ERROR cMessageText2] [DROP DEFAULT][DROP CHECK](3)ALTER TABLE TableName1[DROP [COLUMN]FieldName3] [SET CHECK lExpression3[ERROR cMessageText3] [DROP CHECK] [ADD PRIMARY KEY eExpression3 TAG TagName2[FOR lExpression4]] [DROP PRIMARY KEY〕
[ADD UNIQUE eExpression4[TAG TagName3[FOR lExpression5]]] [DROP UNIQUE TAG TagName4] [ADD FOREIGN KEY[eExpression5] TAG TagName4[FOR lExpression6] REFERENCES TableName2[TAG TagName5]] [DROP FOREIGN KEY TAG TagName6[SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] 考點16 視圖的定義 1視圖的概念及其定義(l)視圖的概念。
Visual FoxPro中視圖是一個虛擬的表,可以是本地的、遠程的或帶參數(shù)的。(2)視圖的定義,格式為:
CREATE VIEW view name[(column_name[,column_name]?)] AS select_statement 2從單個表派生出來的視圖
視圖一經(jīng)定義,就可以和基本表一樣進行各種查詢,也可以進行一些修改操作。對于最終用戶來說,有時并不需要知道操作的是基本表還是視圖。3從多個表派生出來的視圖
視圖一方面可以限定對數(shù)據(jù)的訪問,另一方面又可以簡化對數(shù)據(jù)的訪問。4視圖的刪除
視圖由于是從表派生出來的,所以不存在修改結構的問題,但是視圖可以刪除。格式:DROP VIEW<視圖名> 5關于視圖的說明
在關系數(shù)據(jù)庫中,視圖始終不真正含有數(shù)據(jù),它總是原有表的一個窗口。所以,雖然視圖可以像表一樣進行各種查詢,但是插入、更新和刪除操作在視圖上卻有一定限制。在一般情況下,當一個視圖是由單個表導出時可以進行插入和更新操作,但不能進行刪除操作;當視圖是從多個表導出時,插入、更新和刪除操作都不允許進行。這種限制是很有必要的,它可以避免一些潛在問題的發(fā)生。5.1 查詢與視圖
考點1 查詢設計器 1查詢的概念
查詢是從指定的表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向輸出查詢結果。查詢以擴展名為QPR的文件保存在磁盤上的,這是一個文本文件,它的主體是SQL SELECT語句。2查詢的建立
建立查詢可以使用“查詢設計器”,但它的基礎是SQL SELECT語句。建立查詢的方法有以下幾個方面。
(l)可以利用CREATE QUERY命令打開查詢設計器建立查詢。(2)可以利用“新建”對話框打開查詢設計器建立查詢。
(3)可以在項目管理器的“數(shù)據(jù)”選項卡中打開查詢設計器建立查詢。(4)可直接編輯QPR文件建立查詢。建立查詢時,首先進入如圖6-1所示的界面選擇用于建立查詢的表或視圖,選擇表或視圖后,單擊“添加”按鈕。最后單擊“關閉”按鈕,進入如圖6-2所示的查詢設計器界面。
圖6-1 為查詢選擇表或視圖
查詢設計器中的各選項卡和SQL SELECT語句的各短語是相對應的,對應關系如下。“字段”――SELECT短語,用于指定要查詢的數(shù)據(jù) “連接”――JOIN ON短語,用于編輯連接條件?!昂Y選”――WHERE短語,用于指定查詢條件。
“排序依據(jù)”――ORDER BY短語,用于指定排序字段和排序方式。“分組依據(jù)”――GROUP BY短語和HAVING短語,用于分組。
圖6-2 查詢設計器 3查詢的運行
運行查詢有下列兩種方法。
(1)可以在項口管理器的“數(shù)據(jù)”選項卡中,展開“查詢”選項,然后選擇要運行的查詢文件,單擊“運行”按鈕,可查看查詢結果。(2)在命令窗門執(zhí)行命令DO QueryFile。
注意:此處的查詢文件名是全名,包括擴展名QPR。4查詢?nèi)ハ?/p>
設計查詢的目的不只是完成一種查詢功能,在查詢設計器中可以根據(jù)需要為查詢輸出定位查詢?nèi)ハ颉Mㄟ^“查詢”菜單卜的“查詢?nèi)ハ颉保蛟凇安樵冊O計器”工具欄中單擊“查詢?nèi)ハ颉卑粹o?!安樵?nèi)ハ颉睂υ捒蛉鐖D6-3所示
圖6-3 “查詢?nèi)ハ颉睂υ捒?各去向的含義如下。
(1)瀏覽:在“瀏覽”(BROWSE)窗口中顯示查詢結果,這是默認的輸出去向。(2)臨時表:將查詢結果存儲于一個命名的臨時只讀表中。(3)表:將結果保存在一個命名的數(shù)據(jù)表文件中。(4)圖形:查詢結果可以用于Microsoft Graph。
(5)屏幕:在Visual FoxPro主窗口或當前活動輸出窗口中顯示查詢結果。(6)報表:將結果輸出到一個報表文件。(7)標簽:將結果輸出到一個標簽文件。小提示:
在7種輸出去向中,只有“瀏覽”和“屏幕”兩種輸出去向才能直接看到查詢結果。6.2 視圖
考點2 視圖的概念與建立 1視圖的概念
視圖是操作表的一種手段,通過視圖可以查詢表,也可以更新表。視圖是根據(jù)表定義的,因此視圖基于表,而視圖可以使應用更靈活,因此它又超越表。視圖是數(shù)據(jù)庫中的一個特有功能,只有在包含視圖的數(shù)據(jù)庫打開時才能使用。
視圖兼有“表”和“查詢”的特點,與查詢相類似的地方是可以用來從一個或多個相關聯(lián)的表中提取有用信息;與表類似的地方是可以用來更新其中的信息,并將結果永久性保存在磁盤上。
2視圖的建立
(l)用CREATE VIEW命令打開視圖設計器建立視圖。(2)利用“新建”對話框打開視圖設計器建立視圖。
(3)在項目管理器的“數(shù)據(jù)”選項卡中打開視圖設計器建立視圖。(4)利用SQL命令CREATE VIEW...AS...建立視圖。3視圖設計象
視圖設計器(如圖6一所示)與查詢設計器基本上一樣,主要有以下幾點不同。(1)視圖的結果保存在數(shù)據(jù)庫中,在磁盤上找不到類似的文件。
(2)視圖可以用來更新數(shù)據(jù),因此在設計器中多了一個“更新條件”選項卡。(3)在視圖中沒有“查詢?nèi)ハ颉钡膯栴}。
圖6-4 視圖設計器
考點3 遠程視圖與連接
為了建立遠程視圖,必須首先建立連接遠程數(shù)據(jù)庫的“連接”,“連接”是Visual FoxPro數(shù)據(jù)庫中的一種對象。1定義數(shù)據(jù)源和連接
數(shù)據(jù)源一般是ODBC數(shù)據(jù)源,開放數(shù)據(jù)庫互連ODBC是一種連接數(shù)據(jù)庫的通用標準。為了定義ODBC數(shù)據(jù)源,必須首先安裝ODBC驅動程序。2建立連接
建立連接的方法有以下幾種。(1)用CREATE CONNECTION命令打開“連接設計器”,或完全用命令方式建立連接。(2)通過“新建”對話框建立連接。
(3)在項目管理器的“數(shù)據(jù)”選項卡中建立連接。3設計遠程視圖
利用數(shù)據(jù)源或連接建立的遠程視圖的SQL語法要符合遠程數(shù)據(jù)庫的語法,例如,SQL Server的語法和Visual FoxPro的語法就有所區(qū)別。考點4 視圖與數(shù)據(jù)更新
視圖是根據(jù)基本表派生出來的,所以把它叫做虛擬表為了通過視圖能夠更新基本表中的數(shù)據(jù),需要在視圖設計器的“更新條件”選項卡中的左下角選中“發(fā)送SQL更新”復選框。1指定可更新的表
如果視圖是基于多個表的,默認可以更新“全部表”的相關字段,如果要指定只能更新某個表的數(shù)據(jù),則可以通過“表”下拉列表框選擇表 2指定可更新的字段
在“字段名”列表框中列出了與更新有關的字段,在字段名左側有兩列標志,“鑰匙”表示關鍵字,“鉛筆”表示更新通過單擊相應列可以改變相關的狀態(tài),默認可以更新所有非關鍵字字段,并且通過基本表的關鍵字完成更新,即Visual FoxPro用這些關鍵字字段來唯一標識那些已在視圖中修改過的基本表中的記錄建議不要改變關鍵字的狀態(tài),不要試圖通過視圖來更新基本表中的關鍵字字段值,如有必要,可以指定更新非關鍵字字段值 3檢查更新的合法性 如圖6-1所示,“SQL WHERE子句包括”框中的選項決定哪些字段包含在UPDATE或DELETE語句的WHERE子句中,Visual FoxPro正是利用這些語句將在視圖中修改或刪除的記錄發(fā)送到遠程數(shù)據(jù)源或基本表中,WHERE子句就是用來檢查自從提取記錄用于視圖中后,服務器上的數(shù)據(jù)是否已經(jīng)改變。“SQL WHERE子句包括”框中各選項的含義如下。
(l)關鍵字段:當基本表中的關鍵字字段被改變時,更新失敗。
(2)關鍵字和可更新字段:當基本表中任何標記為可更新的字段被改變時,更新失敗。
(3)關鍵字和已修改字段:當在視圖中改變的任一字段的值在基本表中已被改變時,更新失敗。
(4)關鍵字和時間戳:當遠程表上記錄的時間戳在首次檢索之后被改變時,更新失敗。4使用更新方式
“使用更新”框的選項決定當向基本表發(fā)送SQL更新時的更新方式。
(1)SQL DELETE然后INSERT:先用SQL DELETE命令刪除基本表中被更新的舊記錄,再用SQL INSERT命令向基本表中插入更新后的記錄。
(2)SQL UPDATE:使用SQL UPDATE命令更新基本表??键c5 使用視圖
視圖建立后,不但可以用它來顯示和更新數(shù)據(jù),而且可以通過調(diào)整它的屬性來提高性能,它的使用類似于表。1視圖操作
(1)在數(shù)據(jù)庫中使用USE命令打開或關閉視圖。(2)在“瀏覽器”窗口中顯示或修改視圖中的記錄。(3)使用SQL語句操作視圖。
(4)在文本框、表格控件、表單或報表中使用視圖作為數(shù)據(jù)源。2使用視圖
視圖一經(jīng)建立就基本可以像基本表一樣使用,適用于基本表的命令基本都可以用于視圖。比如在視圖上也可以建立索引,此索引當然是臨時的,視圖一關閉,索引自動刪除,多工作區(qū)時也可以建立聯(lián)系等。但視圖不可以用MODIFY STRUCTURE命令修改結構。因為視圖畢竟不是獨立存在的基本表,它是由基本表派生出來的,只能修改視圖的定義。
小提示:
查詢與視圖的區(qū)別是:查詢可以定義輸出去向,可以將查詢的結果靈活地應用于表單、報表、圖形等各種場合,但是利用查詢不可以修改數(shù)據(jù);而利用視圖可以修改數(shù)據(jù),可以利用SQL將對視圖的修改發(fā)送到基本表,特別是對于遠程表的操作,利用視圖是非常有效的。
6.1表單與控件 面向對象的概念 考點1 對象與類 1對象(Object)客觀世界里的任何實體都可以被視為對象。對象可以是具體事物,也可以指某些概念二(1)屬性:用來表示對象的狀態(tài)。(2)方法:用來描述對象的行為。2類(Class)類是對一類相似對象性質(zhì)的描述。同類對象具有相同的性質(zhì):相同的屬性及方法??键c2 子類與繼承 1繼承
繼承表達了一種從一般到特殊的進化過程。在面向對象的方法里,繼承是指基于現(xiàn)有類的方法和屬性。2類
我們把新類稱為現(xiàn)有類的子類,而把現(xiàn)有類稱為新類的父類。一個子類的成員一般包括以下兩個方面。
(l)從其父類繼承的成員,包括屬性、方法。(2)由子類自己定義的成員,包括屬性、方法。8.2 Visual FoxPro基類簡介 考點3 Visual FoxPro基類
Visual FoxPro中所有基類共有的屬性如表8-1所示。表8-1 Visual FoxPro基類的最小屬性集
(l)在編程方式里,對象的生成通常使用CREATE OBJECT函數(shù)來完成,格式為: CREATE OBJECT(<類名>[,<參數(shù)1>,<參數(shù)2>,?])說明:函數(shù)基于指定的類生成一個對象,并返回對象的引用。(2)對象屬性訪問及對象方法調(diào)用的基本格式為: <對象引用>.<對象屬性> <對象引用>.<對象方法>[(?)] 考點4 容器與控件
Visual FoxPro中的類一般可分為兩種類型:容器類和控件類。相應地,可分別生成容器(對象)和控件(對象)。
(l)控件:是一個可以以圖形化的方式顯示出來并能與用戶進行交互式的對象。(2)容器:可看成是一個特殊的控件,它能包容其他的控件或容器。(3)層次:容器內(nèi)的包容關系形成r對象的嵌套層次關系。對象的層次概念與類的層次概念是兩個完全不同的概念對象的層次關系指的是包容與被包容的關系,而類的層次指的是繼承與被繼承的關系。
在對象的嵌套層次關系中,要引用其中的某個對象,需要指明對象在嵌套層次中的位置。對象引用的幾個屬性或關鍵字如表8-2所示。表8-2 對象引用的幾個屬性或關鍵字
考點5 事件
事件是一種由系統(tǒng)預先定義而由用戶或系統(tǒng)發(fā)出的動作。它作用于對象,對象識別事件并做出相應的反應。與方法集可以無限擴展不同的是,事件集是固定的。用戶不能定義新的事件。表8-3列出了VisualFoxPro基類的最小事件集,不管哪個基類都包含這些事件。表8-3 Visual FoxPro基類的最小事件集
8.3 創(chuàng)建與管理表單
考點6 創(chuàng)建、修改及運行表單 1使用表單向導創(chuàng)建表單
調(diào)用表單向導的方法有多種,這里只做簡單介紹。
(l)在“項目管理器”窗口中,選擇“文檔”選項卡,選擇其中的“表單”圖標。(2)單擊“新建”按鈕,系統(tǒng)彈出“新建表單”對話框。(3)單擊“表單向導”圖標按鈕,打開“向導選取”對話框。(4)從列表框中選擇要使用的向導,然后單擊“確定”按鈕。2使用表單設計器創(chuàng)建表單
可以使用以下3種方法中的任何一種調(diào)用表單設計器。(1)在項目管理器環(huán)境下調(diào)用。(2)菜單方式調(diào)用。(3)命令方式調(diào)用。3修改已有的表單
一個表單無論是通過任何途徑創(chuàng)建的,都可以使用表單設計器進行編輯修改。我們可以通過項目或使用命令“MODIFY FORM<表單名>”來打開表單設計器。4運行表單
可以采用下列方法運行通過表單設計器創(chuàng)建的表單文件。
(1)在項目管理器窗口中,選擇要運行的表單,然后單擊窗口里的“運行”按鈕。
(2)在表單設計器環(huán)境下,選擇“表單”菜單中的“執(zhí)行表單”命令,或單擊標準工具欄上的“運行”按鈕。
(3)選擇“程序”菜單中的“運行”命令,打開“運行”對話框,然后在對話框中指定要運行的表單文件并單擊“運行”按鈕。(4)在命令窗口中輸入命令,格式為:
DO FORM<表單文件名>[NAME<變量名>] WITH<實參>[,<實參>,?][LINKED][NOSHOW] 考點7 管理表單屬性和方法
可以向表單添加任意數(shù)量的新屬性和新方法,并像引用表單的其他屬性和方法一樣引用它們。Visual FoxPro中表單的屬性大約有100個,但絕大多數(shù)很少用到。表8-4列出了常用的一些表單屬性,這些屬性規(guī)定了表單的外觀和行為。表8-4 表單的常用屬性
1創(chuàng)建新屬性
向表單添加新屬性的方法如F。
(l)選擇“表單”菜單中的“新建屬性”命令,打開“新建屬性”對話框,如圖8-1所示。(2)在“名稱”文本框中輸入新屬性的名稱。
(3)有選擇地在“說明”列表框中輸入新建屬性的說明信息。
圖8-1 “新建屬性”對話框
2創(chuàng)建新方法
向表單添加新方法的步驟如下
(l)運行“表單”→“新建方法程序”命令,打開“新建方法程序”對話框,如圖8-2所示。(2)在“名稱”文本框中輸入新方法名。
(3)有選擇地在“說明”列表框中輸入新建方法的說明信息。
圖8-2 “新建方法程序”對話框
3編輯方法或事件代碼
在表單設計器中,編輯方法或事件代碼的步驟如下。
(1)選擇“顯示”菜單中的“代碼”命令,打開代碼編輯窗口,如圖8-3所示。(2)從“對象”框中選擇方法或事件所屬的對象。(3)從“過程”框中指定需要編輯的方法或事件。(4)在編輯區(qū)輸入或修改方法或事件的代碼。
圖8-3 代碼編輯窗口
考點8 常用事件與方法
下面將以表的形式簡單介紹一下表單及控件常用的一些事件和方法,如表8-5所示。表8-5 常用的一些屬性和方法
8.4 表單設計器
考點9 表單設計器環(huán)境
表單設計器啟動后,在Visual FoxPro的主窗口中出現(xiàn)“表單設計器”窗口、“屬性”窗口、“表單控件”工具欄、“表單設計器”工具欄及“表單”菜單。1“表單設計器”窗口
用戶可視化地添加和修改控件的窗口。2“屬性”窗口
如圖8-4所示,在“屬性”窗口中包括對象框、屬性設置框、方法和事件列表。用戶可在此窗口中選擇表取中的控件,并為表單設計屬性、方法及事件。
對于表單及控件的絕大多數(shù)屬性,其數(shù)據(jù)類型是固定的。一般來說,要為屬性設置一個字符型數(shù)值,可以在設置框中直接輸入,不需要加定界符。
“屬性”窗口可以通過單擊“表單設計器”工具欄中的“屬性窗口”按鈕或選擇“顯示”菜單中的“屬性環(huán)境”命令打開或關閉。
圖8-4 “屬性”窗口
3“表單控件”工具欄
如圖8-5所示,利用“表單控件”工具欄可以方便地向表單添加控件。
圖8-5 “表單控件”工具欄
除了控件按鈕外,“表單控件”工具欄還包含“選定對象”、“按鈕鎖定”、“生成器鎖定”和“查看類”4個輔助按鈕。4“表單設計器”工具欄
“表單設計器”工具欄如圖8-6所示,它可以通過“顯示”菜單中的“工具欄”命令打開或關閉。
圖8-6 “表單設計器”工具欄
5“表單”菜單 “表單”菜單中的命令主要用于創(chuàng)建、編輯表單或表單集,如為表單增加新的屬性和方法等??键c10 控件的操作與布局 1控件的基本操作
在表單設計器下,對表單上的控件可進行移動、改變大小、復制、刪除等操作。(l)選定控件。(2)移動控件
(3)調(diào)整控件大小。(4)復制控件。(5)刪除控件。2控件布局 利用“布局”工具欄中的按鈕,可以方便地調(diào)整表單窗口中被選控件的相對大小或位置。“布局”工具欄丁以通過單擊“表單設計器”工具欄上的“布局工具欄”按鈕或選擇“顯示”菜單中的“布局工具欄”命令打開或關閉。3設置Tab鍵次序
當表單運行時,用戶可以按Tab鍵選擇表單中的控件,使焦點在控件間移動??丶腡ab鍵次序決定了選擇控件的次序。Visual FoxPro提供了兩種方式來設置Tab鍵次序:交互方式和列表方式??键c11 數(shù)據(jù)環(huán)境 1數(shù)據(jù)環(huán)境的常用屬性
常用的兩個數(shù)據(jù)環(huán)境是AutoOpenTables和AutoCloseTables,其功能如下。
(1)AutoOpenTables;表示當運行或打開表單時,是否打開數(shù)據(jù)環(huán)境中的表和視圖,默認值為邏輯真.T.)。
(2)AutoCloseTables:表示當釋放或關閉表單時,是否關閉由數(shù)據(jù)環(huán)境指定的表和視圖,默認值為邏輯真(.T.)。
2打開數(shù)據(jù)環(huán)境設計器
可通過單擊“表單設計器”工具欄中的“數(shù)據(jù)環(huán)境”按鈕,也可以選擇“顯示”菜單中的“數(shù)據(jù)環(huán)境”命令打開或關閉“數(shù)據(jù)環(huán)境設計器”窗口。3向數(shù)據(jù)環(huán)境中添加表或視圖
(1)選擇“數(shù)據(jù)環(huán)境”菜單中的“添加”命令,或用鼠標右鍵單擊“數(shù)據(jù)環(huán)境設計器”窗口,然后在彈出的快捷菜單中選擇“添加”命令,打開“添加表或視圖”對話框。
(2)選擇要添加的表或視圖并單擊“添加”按鈕。如果單擊“其他”按鈕,將調(diào)出“打開”對話框,用戶可以從中選擇需要的表。4從數(shù)據(jù)環(huán)境中移去表或視圖
在數(shù)據(jù)環(huán)境設計器環(huán)境下,按下列方法從數(shù)據(jù)環(huán)境移去表或視圖。(1)在“數(shù)據(jù)環(huán)境設計器”窗口中,單擊選擇要移去的表或視圖。(2)選擇“數(shù)據(jù)環(huán)境”菜單中的“移去”命令。
也可以用鼠標右鍵單擊要移去的表或視圖,然后在彈出的快捷菜單中選擇“移去”命令。當表從數(shù)據(jù)環(huán)境中移去時,與這個表有關的所有關系也將隨之消失。5在數(shù)據(jù)環(huán)境中設置關系
如果添加到數(shù)據(jù)環(huán)境的表之間具有在數(shù)據(jù)庫中設置的永久關系,這些關系也會自動添加到數(shù)據(jù)環(huán)境中。如果表之間沒有永久關系,可以根據(jù)需要在數(shù)據(jù)環(huán)境設計器下為這些表設置關系。6在數(shù)據(jù)環(huán)境中編輯關系
關系是數(shù)據(jù)環(huán)境中的對象,它有自己的屬性、方法和事件。常用的關系屬性如表8-6所示。
表8-6 常用的關系屬性
7向表單添加字段
我們可以利用“表單控件”工具欄方便地將一個標準控件放置到表單上,也可以從“數(shù)據(jù)環(huán)境設計器”窗口、“項目管理器”窗口或“數(shù)據(jù)庫設計器”窗口中直接將字段、表或視圖拖入表單,系統(tǒng)將產(chǎn)生相應的控件并與字段相聯(lián)系。8.5 常用表單控件
考點12 標簽(Label)控件 標簽的常用屬性如下
(1)Caption屬性:指定標簽的標題文本很多類控件都具有Caption屬性。用戶可以利用該屬性為所創(chuàng)建的對象指定標題文本。
(2)Alignment屬性:指定標題文本在控件中的顯示對齊方式。該屬性包括三個屬性值――0、1和2,分別代表左對齊、右對齊和中央對齊??键c13 命令按鈕(CommandButton)控件 命令按鈕的常用屬性如下。
(1)Default屬性:該屬性默認值為.F.。當屬性為.T.時,可稱為“確定”按鈕,一個表單中只能包含一個“確定”按鈕;在Windows中,當焦點不在命令按鈕上時,按Enter鍵,系統(tǒng)將自動執(zhí)行該命令按鈕的Click事件代碼、(2)Cancel屬性:該屬性默認值為.F.。當屬性為.T.時,可稱為“取消”按鈕,在表單中,可通過Esc鍵執(zhí)行該命令按鈕中的Click事件代碼一個表單中可有多個命令按鈕的Cancel屬性值為.T.。(3)Enabled屬性:指定表單或控件能否響應用戶引發(fā)的事件。默認的屬性值為.T.,即對象是有效的,當Enabled=.F.時,只是用來顯示只讀的信息。
(4)Visible屬性:指定對象是可見還是隱藏。默認的屬性值為.T.,即對象是可見的??键c14 命令組(CommandGroup)控件
命令組是包含一組命令按鈕的容器控件,其常用屬性如下。
(1)ButtonCount屬性:指定命令組中命令按鈕的個數(shù),默認的屬性值為2。(2)Buttons屬性:用于存取命令組中各按鈕的數(shù)組。用戶可以利用該數(shù)組為命令組中的命令按鈕設置屬性或調(diào)用其方法,屬性數(shù)組下標的取值范圍應該在1到ButtonCount屬性值之間。(3)Value屬性:指定命令組當前的狀態(tài)。該屬性的類型可以是數(shù)值型,也可以是字符型??键c15 文本框(TextBox)控件 文本框的常用屬性如下。
(1)ControlSource屬性:可利用該屬性為文本框指定一個字段或內(nèi)存變量,運行時,文本框中首先顯示該變量的內(nèi)容
(2)Value屬性:返回文本框的當前內(nèi)容。該屬性的默認值是空串。(3)PasswordChar屬性:指定文本框控件內(nèi)是顯示用戶輸入的字符還是顯示占位符。該屬性的默認值是空串,此時沒有占位符。當為屬性指定一個占位符(例如*)后,文本框中只顯示占位符。
(4)InputMask屬性:指定在一個文本框中如何輸入和顯示數(shù)據(jù)。各種模式符的功能如表8-7所示。
表8-7 模式符及其功能
考點16 編輯框的常用屬性如下。
(1)AllowTabs屬性:指定編輯框中能否使用Tab鍵。該屬性的默認值為.F.,當按Tab鍵時,焦點移出編輯框。
(2)HideSelection屬性:指定當編輯框失去焦點時,編輯框中選定的文本是否仍顯示為選定狀態(tài)。該屬性的默認值為.T.,即當編輯框失去焦點時,編輯框中選定的文本不顯示為選定狀態(tài)(3)ReadOnly屬性:指定用戶能否編輯編輯框中的內(nèi)容。如果該屬性的默認值為.F.,則叮以編輯編輯框中的內(nèi)容;當屬性值為.T.時,編輯框中的內(nèi)容為只讀。
(4)ScrollBars屬性:指定編輯框是否具有滾動條。該屬性包括“0-無” 和“2-垂直”兩個屬性值。
(5)SelStart屬性:返回用戶在編輯框中所選文本的起始位置或插入點位置。屬性的有效取值范圍在0與編輯區(qū)中的字符總數(shù)之間。
(6)SelLength屬性:返回用戶在控件的文本輸入?yún)^(qū)中所選定字符的數(shù)目,或指定要選定的字符數(shù)目。
(7)SelText屬性:返回用戶編輯區(qū)內(nèi)選定的文本。如果沒有選定文本,將返回空串。考點17 復選框(CheckBox)控件 復選框的常用屬性如下。
(1)Caption屬性:用來指定顯示在復選框旁邊的文字。
(2)Value屬性:用來指明復選框的當前狀態(tài),共有3種情況:0或.F.表示未被選中;1或.T.表示被選扣;2或.NULL.表示不確定,只在代碼中有效。
(3)ControlSource屬性:指明與復選框建立聯(lián)系的數(shù)據(jù)源。作為數(shù)據(jù)源的字段變量或內(nèi)存變量,其類型可以是邏輯型或數(shù)值型。考點18 選項組(OptionGroup)控件
選項組是包含若干個選項按鈕的一種容器控件,其常用屬性如下。(1)ButtonCount屬性:指定選項組中選項按鈕的數(shù)目,其默認值為2,(2)Value屬性:用于指定選項組中哪個選項按鈕被選中。該屬性值的類型可為數(shù)值k1J或字符型。
(3)ControlSource屬性:指明與選項組建立聯(lián)系的數(shù)據(jù)源。作為數(shù)據(jù)源的字段變量或內(nèi)存變量,其類型可以是字符型或數(shù)值型
(4)Buttons屬性:用于存取選項組中每個按鈕的數(shù)組,其含義與命令組的Buttons類似??键c19 列表框(ListBox)控件 列表框的常用屬性如下
(1)RowSourceType屬性與RowSource屬性:RowSourceType屬性指明列表框中的條目數(shù)據(jù)源的類型,RowSource屬性指定列表框的條目數(shù)據(jù)源。RowSourceType屬性共有10種取值范圍:0-無(默認值)、1-值,2-別名、3-SQL語句,4-查詢(.qpr),5-數(shù)組,6-字段,7-文件,8-結構,9-彈出式菜單。(2)List屬性:用以存取列表框中數(shù)據(jù)條目的字符串數(shù)組。(3)ListCount屬性:指明列表框中數(shù)據(jù)條目的數(shù)目。(4)ColumnCount屬性:指定列表框的列數(shù)。
(5)Value屬性:列表框中被選中的條目。該屬性可以是數(shù)值型,也可以是字符型。
(6)ControlSource屬性:該屬性在列表框中的用法和在其他控件中的用法有所不同。用戶可以通過該屬性指定一個字段或變量用以保存用戶從列表框中選擇的結果。(7)Selected屬性:指定列表框內(nèi)的某個條目是否處于選定狀態(tài)〕(8)MultiSelect屬性:指定用戶在列表框控件內(nèi)進行多重選定。其中,0或.F.表示不允許多重選定,為系統(tǒng)默認值;1或.T.表示允許多重選定??键c20 組合框(ComboBox)控件
組合框與列表框類似,也是用于提供一組條目供用戶從中選擇,組合框的特點如下。(1)對于組合框來說,通常只有一個條目是可見的。(2)組合框不提供多重選定的功能。
(3)組合框可通過Style屬性設置其形式,共有兩種:0表示下拉組合框,2表示下拉列表框??键c21 表格(Gride)控件 表格是一種容器對象。一個表格對象由若十列對象組成,每個列對象包含一個標頭對象和若干控件,它們都有自己的屬性、事件和方法。1表格的常用屬性
(l)RecordSourceType屬性與RecordSource屬性:RecordSourceType屬性指明表格數(shù)據(jù)源類型,RecordSource屬性指定表格數(shù)據(jù)源。其中數(shù)據(jù)類型共有5種取值范圍:0-表、1-別名(默認值)、2-提示、3-查詢(.qpr)、4-SQL語句。
(2)ColumnCount屬性:指定表格的列數(shù),即一個表格對象所包含的列對象數(shù)目。(3)LinkMaster屬性:用于指定表格控件中所顯示的子表的父表名稱。(4)ChildOrder屬性:用于指定建立一對多的關聯(lián)關系,子表所要用到的索引。該屬性類似于SET ORDER命令。
(5)RelationalExpr屬性:確定基于主表字段的關聯(lián)表達式。2常用的列屬性
(1)ControlSource屬性:指定要在列中顯示的數(shù)據(jù)源,常見的是表中的一個字段。
(2)CurrentControl屬性:指定列對象中的一個控件,該控件用以顯示和接收列中活動單元格的數(shù)據(jù)。
(3)Sparse屬性:用于確定CurrentControl屬性是影響列中的所有單元格還是影響活動單元格。
3常用的標頭(Header)屬性
(1)Caption屬性:指定標頭對象的標題文本,顯示于列頂部。(2)Alignment屬性:指定標題文本在對象中顯示的對齊方式。考點22 頁框(PageFrame)控件
頁框是包含頁面(Page)的容器對象,其常用屬性如下。
(1)PageCount屬性:用于指明一個頁框對象所包含的頁對象的數(shù)量。最小值為0,最大值為99。
(2)Pages屬性:該屬性是一個數(shù)組,用于存取頁框中的某個頁對象。(3)Tabs屬性:指定頁框中是否顯示頁面標簽欄。
(4)TabStretch屬性:如果頁面標題文本太長,可通過設置該屬性利用多行顯示。其中0表示多重行,1表示單行(默認值)。
(5)ActivePage屬性:返回頁框中活動頁的頁號,或使頁框中的指定頁 7.1菜單設計
9.1 Visual FoxPro系統(tǒng)菜單 考點1 菜單結構 Visual FoxPro支持兩種類型的菜單:條形菜單和彈出式菜單。菜單項的名稱顯示于屏幕供用戶識別,菜單及菜單項的內(nèi)部名稱或選項序號則用于在代碼中引用。每一個菜單項都可以選擇設置一個熱鍵和一個快捷鍵。無論哪種類型的菜單,當選擇某個選項時都會有一定的動作,這個動作可以是下列3種情況之一:執(zhí)行一條命令、執(zhí)行一個過程或激活另一個菜單??键c2 系統(tǒng)菜單 Visual FoxPro系統(tǒng)菜單是一個典型的菜單系統(tǒng),其主菜單是一個條形菜單。條形菜單的內(nèi)部名字為_MSYSMENU,也可看做是整個菜單系統(tǒng)的名字。
條形菜單中常見選項的名稱及內(nèi)部名字如表9-1所示,各彈出式菜單的內(nèi)部名字如表9-2所示。表9-3的是“編輯”菜單中常用選項的選項名稱和內(nèi)部名字。表9-1 主菜單(MSYSMENU)常見選項
表9-2 彈出式菜單的內(nèi)部名字
表9-3 “編輯”菜單(_MEDIT)常用選項
通過SET SYSMENU命令可以允許或禁止在程序執(zhí)行時訪問系統(tǒng)菜單,也可以重新配置系統(tǒng)菜單,格式如下。
SET SYSMENU ON|OFF AUTOMATIC |TO[<彈出式菜單名表>] |TO[<條形菜單項名表>] |TO[DEFAULT]|SAVE|NOSAVE 小提示:
如不帶任何參數(shù),直接SET SYSMENU TO命令,將屏蔽系統(tǒng)菜單,使系統(tǒng)菜單不可用。9.2 下拉式菜單設計
考點3 菜單設計的基本過程
用菜單設計器設計下拉式菜單的基本過程如下。(l)調(diào)用菜單設計器。
(2)在“菜單設計器”窗口中定義菜單,指定菜單的各項內(nèi)容,定義完成后,通過菜單命令“保存”或直接使用快捷鍵Ctrl+W保存菜單。
(3)通過菜單命令“菜單”*“生成”命令,產(chǎn)生可執(zhí)行的菜單程序文件(MPR)。
(4)在命令窗口中,使用DO命令執(zhí)行菜單文件,此處的文件擴展名MPR不能默認。菜單設計的基本流程如圖9-1所示。
圖9-1 菜單設計的基本流程圖 考點4 定義菜單
1“菜單設計器”窗口
“菜單設計器”窗口每頁顯示和定義一個菜單,可以是條形菜單(菜單欄),也可以是彈出式菜單(子菜單)?!安藛卧O計器”窗口打開時,首先顯示和定義的是條形菜單,即主菜單名。窗口的左邊是一個列表框,其中每一行定義當前菜單的一個菜單項,包括“菜單名稱”、“結果”和“選項”3列內(nèi)容(如圖9-2所示)。(1)“菜單名稱”列。(2)“結果”列。(3)“選項”列。2“顯示”菜單
在菜單設計一器環(huán)境下,系統(tǒng)“顯示”菜單會出現(xiàn)兩條命令。(1)“常規(guī)選項”對話框。(2)“菜單選項”對話框。
圖9-2 “菜單設計器”窗口 考點5 用編程方式定義菜單
無論是條形菜單還是彈出式菜單,都可以通過命令進行定義和設計。此處介紹幾種有關菜單定義的簡單命令。(1)條形菜單定義。(2)彈出式菜單定義。
考點6 為頂層表單添加菜單
為頂層表單添加下拉式菜單的方法和過程如下。(1)在“菜單設計器”窗口中設計好下拉式菜單。
(2)打開“常規(guī)選項”對話框,選中對話框右下角的“頂層表單”復選框。(3)將表單的ShowWindow屬性設置為2,使之成為頂層表單。(4)在表單的Init事件中添加調(diào)用菜單的程序代碼: DO<文件名>WITH This[,“<菜單名>”] 此處的<文件名>是指被調(diào)用的菜單程序文件(MPR),<菜單名>是為被添加的下拉式菜單的條形菜單指定的一個內(nèi)部名字。
(5)在表單的Destroy事件中添加清除菜單的程序代碼: RELEASE MENU<菜單名>[EXTENDED] 其中EXTENDED表示在清除條形菜單時一起清除其下屬的所有子菜單。9.3 快捷菜單設計
考點7 快捷菜單的建立與執(zhí)行
與下拉式菜單相比,快捷菜單沒有條形菜單,只有彈出式菜單。建立快捷菜單的方法和過程如下。
(1)打開“新建”對話框二
(2)在“新建”對話框中選擇“菜單”選項.單擊“新建文件”按鈕。
(3)在“新建菜單”對話框中選擇“快捷菜單”選項,打開“快捷菜單設計器”窗口。
(4)用與設計下拉式菜單相似的方法,在“快捷菜單設計器”窗口中設計快捷菜單,生成菜單程序文件。
(5)在快捷菜單的“清理”代碼中添加清除菜單的命令,使得在選擇、執(zhí)行菜單命令后能及時清除菜單,釋放其所占用的內(nèi)存空間,格式為: RELEASE POPUPS<快捷菜單名>[EXTENDED](6)在設計器環(huán)境下,選定需要添加快捷菜單的對象。
(7)在選定對象的RightClick事件代碼中,添加調(diào)用快捷菜單程序的格式為: DO<快捷菜單程序文件名> 此處的文件擴展名MPR不能默認。
第五篇:2013湖南省全國計算機等級考試二級VB筆試試卷及參考答案考試技巧重點
1、下面不屬于軟件設計原則的是(C)A.抽象 B.模塊化 C.自底向上 D.信息隱蔽
2、軟件調(diào)試的目的是(B)注:與軟件測試要對比著復習A.發(fā)現(xiàn)錯誤 B.改正錯誤 C.改善軟件的性能 D.挖掘軟件的潛能
3、下列模式中,能夠給出數(shù)據(jù)庫物理存儲結構與物理存取方法的是(A)A.內(nèi)模式 B.外模式 C.概念模式 D.邏輯模式
4、下面不屬于軟件設計原則的是(C)A.抽象 B.模塊化 C.自底向上 D.信息隱蔽
5、算法的空間復雜度是指(D)A.算法程序的長度 B.算法程序中的指令條數(shù) C.算法程序所占的存儲空間 D.算法執(zhí)行過程中所需要的存儲空間
6、設有下列二叉樹:圖見書P46 對此二叉樹中序遍歷的結果為(B)A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA
7、下列工具中屬于需求分析常用工具的是(D)A.PAD B.PFD C.N-S D.DFD
8、在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送(D)A.調(diào)用語句 B.命令 C.口令 D.消息
9、對建立良好的程序設計風格,下面描述正確的是(A)A.程序應簡單、清晰、可讀性好 B.符號名的命名要符合語法 C.充分考慮程序的執(zhí)行效率 D.程序的注釋可有可無
10、下面不屬于軟件工程的3個要素的是(D)A.工具 B.過程 C.方法 D.環(huán)境
11、在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是(D)A.概要設計 B.詳細設計 C.可行性分析 D.需求分析
12、在軟件開發(fā)中,下面任務不屬于設計階段的是(D)A.數(shù)據(jù)結構設計 B.給出系統(tǒng)模塊結構
C.定義模塊算法 D.定義需求并建立系統(tǒng)模型
13、在一棵二叉樹上第5層的結點數(shù)最多是(B)注:由公式2(k-1)得 A.8 B.16 C.32 D.15
14、數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是(A)A.控制流 B.加工 C.數(shù)據(jù)存儲 D.源和潭
15、關系表中的每一橫行稱為一個(A)A.元組 B.字段 C.屬性 D.碼
16、關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括(B)A.排序、索引、統(tǒng)計 B.選擇、投影、連接 C.關聯(lián)、更新、排序 D.顯示、打印、制表
17、數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是(A)A.控制流 B.加工 C.數(shù)據(jù)存儲 D.源和潭