




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章VisualFoxPro基本操作
及其預備知識3.1VisualFoxPro工作方式3.2數據類型3.3數據存儲3.4函數3.5表達式習題VisualFoxPro數據庫管理系統是進行數據處理的強有力工具。它不僅用戶界面友好,而且工作方式多樣化,用戶可以根據自己對系統知識的掌握程度,選擇合適的工作方式。VisualFoxPro數據庫管理系統還提供了多種數據的類型,并可以將其存放在各種類型的數據容器中。本章將主要介紹VisualFoxPro系統的工作方式,數據類型、數據的存儲方式及各種類型的表達式。3.1VisualFoxPro工作方式VisualFoxPro不但擁有大量的交互式數據庫管理工具,而且還有一整套功能完善的程序語言系統及面向對象可視化程序編寫工具。為此,VisualFoxPro系統給用戶提供了三種工作方式:命令方式、菜單方式及程序文件方式。1.命令方式命令方式是通過用戶在命令窗口輸入操作命令,立即執(zhí)行操作的交互式工作方式。在命令窗口中,可以輸入單個的操作命令和系統命令,從而完成對數據庫的操作管理,系統程序的設計,各種對象的創(chuàng)建和維護,以及系統環(huán)境的設置等。命令窗口不僅是VisualFoxPro命令的執(zhí)行窗口,也是VisualFoxPro命令文件的編輯窗口。如果用戶比較熟悉VisualFoxPro系統命令及數據庫操作命令,用命令方式要比菜單方式來得更方便快捷。但是,由于VisualFoxPro系統命令格式較為復雜,命令種類繁多,初學者難于掌握,可考慮采用菜單方式。2.菜單方式菜單方式是用戶通過對系統菜單提供的菜單選項選擇,完成對數據庫的操作管理,系統程序的設計,各種對象的創(chuàng)建和維護,以及系統環(huán)境設置的操作。菜單方式也是一種交互式工作方式,只要選擇一個菜單選項,系統便完成一個對應的操作。這種直觀、簡捷的界面操作,不要求熟悉操作命令,只要能夠把握操作流程,選擇合適的菜單選項,就能夠完成操作任務。菜單方式比命令方式容易掌握,即學即會,但其操作步驟過多,執(zhí)行任務的時間長。建議對于一些經常性的操作,還是使用命令方式進行更妥。3.程序文件方式程序文件(簡稱程序)是為解決某一特定問題命令序列的集合。因此,程序文件又稱為命令文件,程序文件方式也稱為命令文件方式。程序文件方式先通過程序文件編輯工具,將對數據庫進行各種操作管理的命令或對系統環(huán)境進行設置的命令,集中在一個以(.PRG)為擴展名的程序文件中;然后,通過菜單方式,或命令方式,或程序文件方式運行這一程序文件;最后,系統將根據程序文件中的每一個命令完成操作任務。用程序文件方式進行數據庫管理,是把許多操作命令集中使用,不僅運行效率高,還可重復操作。但是,若想編寫一個解決實際問題的應用程序,不是一日之功,需要對VisualFoxPro命令和語句進行系統地學習,同時還要掌握一定的程序設計方法。有關程序設計的方法將在后續(xù)的各章節(jié)分別介紹。3.2數據類型數據是反映客觀事物屬性的記錄,它的類型決定了其存儲和使用方式。在許多軟件環(huán)境下,數據通常分為數值型和字符型兩種基本類型,VisualFoxPro系統為了使用戶建立和使用數據庫更加方便,除了上述兩種數據類型外,又細化分出了更多的類型。1.數值型數據數值型數據是由數字(0~9)、小數點和正負號組成的。數值型數據由于表達或存儲形式的不同,又被分為數值型(numeric)、浮點型(float)、雙精度型(double)和整型(integer)。2.字符型數據字符型數據(character)描述的是不具有計算能力的文字數據類型,是最常用的數據類型之一。字符型數據是由漢字和ASCII字符集中可打印字符(英文字符、數字字符、空格及其他專用字符)組成的。字符型數據的最大長度為254個字符。3.日期型日期型數據(date)是用于表示日期的數據。其常規(guī)的輸出格式為{mm/dd/yy}。其中:mm代表月,dd代表日,yy代表年。長度固定為8位。4.日期時間型日期時間型數據(datetime)是描述日期和時間的數據。其常規(guī)的輸出格式為{mm/dd/yyhh:mm:ss}。其中:yy代表年,前兩個mm代表月,dd代表日,hh代表小時,后兩個mm代表分,ss代表秒。長度固定為8位。5.邏輯型邏輯型數據(logic)是描述客觀事物真假的數據,用于表示邏輯判斷結果。邏輯型數據只有真(.T.或.Y.)和假(.F.或.N.)兩種值。長度固定為1位。6.備注型備注型數據(memo)是用于存放較長的字符型數據的數據類型。備注型數據是字符型數據的特殊形式,備注型數據沒有數據長度限制,僅受限于現有的磁盤空間。它只用于數據表中的字段類型的定義,其字段長度固定為4位,而實際數據被存放在與數據表文件同名的備注文件中,長度根據數據的內容而定。7.通用型通用型數據(general)是用于存儲OLE對象的數據。通用型數據中的OLE對象可以是電子表格、文檔、圖片等。OLE對象的實際內容、類型和數據量取決于連接或嵌入OLE對象的操作方式。如果采用連接OLE對象方式,則數據表中只包含對OLE對象的引用說明,以及對創(chuàng)建該OLE對象的應用程序的引用說明;如果采用嵌入OLE對象方式,則數據表中除包含對OLE對象的引用說明及對創(chuàng)建該OLE對象的應用程序的引用說明外,還包含OLE對象中的實際數據。通用型數據只用于數據表中的字段類型的定義。其長度固定為4位,實際數據長度僅受限于現有的磁盤空間。3.3數據存儲數據輸入、輸出是通過數據的存儲設備完成的。通常都是將數據存入到常量、變量、數組中,而在數據庫系統環(huán)境下,還可以把數據存入到字段、記錄和對象中。我們把這些供數據存儲的常量、變量、數組、字段、記錄和對象統稱為數據存儲容器。對數據進行加工處理時,數據存儲容器的不同,決定了數據的類型和使用方法的不同,同時也限定了數據的使用范圍。以下我們介紹常用的幾種數據存儲容器。3.3.1常量常量是一個命名的數據項,是在命令或程序中直接引用的實際值,其特征是它在所有的操作中其值不變。常量有數值型、浮點型、字符型、邏輯型、日期型和時間日期型六種。1.數值型常量由數字(0~9)、小數點和正負號組成。如:8713.25-12368+3325.672.浮點型常量由數字(0~9)、小數點和正負號組成的浮點格式。如:-987e+15+123456e-793.字符型常量由漢字和ASCII字符集中可打印字符組成,并由定界符(“”、‘’、[])括起來的字符串。如:“STRING”“數據庫的應用系統”4.邏輯型常量由表示邏輯判斷結果的“.T.”或“.F.”符號組成。如:.t.或.T..f.或.F.5.日期常量由按其常規(guī)的輸入格式{^yyyy/mm/dd}表示的符號組成。如:{^2000/12/20}{^2000/01/01}6.時間日期型常量由按其常規(guī)的輸入格式{^yyyy/mm/ddhh:mm:ss}表示的符號組成。如:{^2000/12/1211:50:00}3.3.2內存變量內存變量是一般意義下的簡單變量。每一個內存變量都必須有一個固定的名稱,以標識它在該內存單元的存儲位置,用戶可以通過變量標識符來存取常量。1.內存變量的命名內存變量名是由字母、數字和下劃線組成的,不能與VisualFoxPro系統提供的命令、語句專用符號相同,也不能和VisualFoxPro系統提供的函數名同名。如果內存變量與數據表中的字段變量同名時,用戶在引用內存變量時,要在其名字前加一個前綴(m.),用以強調這一變量是內存變量。2.內存變量的類型用戶可以根據需要定義內存變量類型,它的類型取決于首次接受的常量的類型。也就是說,內存變量類型的定義是通過賦值語句來完成的。內存變量的類型有數值型、浮點型、字符型、邏輯型、日期型、時間日期型六種。3.內存變量的賦值內存變量是內存中的臨時存儲單元,在程序的執(zhí)行過程中,可以用來保留中間結果和最后結果,或用來保留對數據庫進行某種分析處理后得到的結果。給內存變量的賦值的命令有STORE和“=”。STORE命令格式:STORE〈表達式〉TO〈內存變量表〉命令功能:先計算〈表達式〉的值,然后將該值賦給〈內存變量表〉中每一個變量?!?”命令格式:〈內存變量〉=〈表達式〉命令功能:先計算〈表達式〉的值,然后將該值賦給以〈內存變量〉為名的內存變量。特別要注意,除非用內存變量文件來保存內存變量值,否則,當退出VisualFoxPro系統后,內存變量的值也會與系統一起消失。例3.1給內存變量A1,A2賦值。A1=123+456STORE″VisualFoxPro″TOA24.內存變量值的輸出輸出內存變量值可以使用“?”命令。“?”命令的格式:?〈表達式〉命令功能:先計算〈表達式〉的值,然后將該值輸出到顯示器上。例3.2輸出內存變量A1,A2的值。?A1?A2+″系統″5.內存變量的清除在系統程序開始運行時,或程序運行過程中,經常對內存變量進行清理,會提高程序的運行速度和質量。使用RELEASE命令可以清除不再使用的內存變量或所有內存變量。RELEASE命令格式:RELEASE[〈內存變量表〉][ALL]命令功能:從內存中清除指定的內存變量。例3.3清除A1,A2兩個內存變量。RELEASEA1,A2例3.4清除所有的內存變量。RELEASEALL6.內存變量的作用域內存變量的作用域就是它的作用范圍。根據內存變量的作用范圍分為全局變量、局部變量和本地變量。使用LOCAL、PRIVATE、PUBLIC命令可以定義內存變量的作用域,也可以使用系統默認的范圍作為內存變量的作用域。(1)定義全局變量用PUBLIC命令定義的內存變量,可視為全局變量。全局變量在全部程序、過程和自定義函數,以及它所調用的程序、過程和自定義函數中都有效。即使整個程序結束,全局變量也不被釋放,它們的值仍然保存在內存中。如要釋放,要用RELEASE命令進行操作。全局變量必須先定義,后賦值。已經定義成全局變量的內存變量,還可以在下級程序中進一步定義成局部變量。但已經定義成局部變量的內存變量,卻不可以再定義成全局變量。除了在程序中將內存變量定義成全局變量外,在命令窗口使用的所有內存變量都視為全局變量。PUBLIC命令格式:PUBLIC〈內存變量表〉命令功能:定義〈內存變量表〉中指定的內存變量為全局變量。例3.5定義P1,P2為全局變量。PUBLICP1,P2(2)定義局部變量用PRIVATE命令定義的內存變量,可視為局部變量。局部變量在定義它的程序,以及被該程序調用的程序、過程和局部變量函數中有效。一旦定義它的程序運行完畢,局部變量便從內存中釋放;如果定義它的程序再調用其他子程序,則該變量在子程序中繼續(xù)有效;如果它在子程序中改變了值,則返回調用程序時也帶回新值,并在程序中繼續(xù)使用;如果另一個程序調用它的程序,調用程序中與定義它的程序同名的內存變量將被屏蔽,而一旦調用程序運行完畢,所有被屏蔽的內存變量便又恢復原來的狀態(tài)。PRIVATE命令格式:PRIVATE〈內存變量表〉命令功能:定義〈內存變量表〉中指定的內存變量為局部變量。例3.6定義P11,P12為局部變量。PRIVATEP11,P12(3)定義本地變量用LOCAL命令定義的內存變量,可視為本地變量。本地變量只在定義它的程序中有效。一旦定義它的程序運行完畢,本地變量將從內存中釋放。需要注意的是,無論是被定義它的程序調用的程序,還是調用定義它的程序都不能使用這些內存變量。LOCAL命令格式:LOCAL〈內存變量表〉命令功能:定義〈內存變量表〉中指定的內存變量為本地變量。例3.7定義L1,L2為本地變量。LOCALL1,L23.3.3數組變量數組是一組有序內存變量的集合?;蛘哒f,數組是由同一個名字組織起來的簡單內存變量的集合。其中每一個內存變量都是這個數組的一個元素,它是由一個以行和列形式表示的數組元素的矩陣。所有的數組元素是用同一個變量名命名的一個集合體,而且每一個數組元素在內存中獨占一個內存單元。為了區(qū)分不同的數組元素,每一個數組元素都是通過數組名和下標來訪問的(如A[1,2]、B[5])。數組是內存變量的一種特殊形式,使用時也同樣要注意其作用域。1.定義數組在VisualFoxPro系統環(huán)境下,可以通過DIMENSION或DECLARE定義只有一個下標的一維數組或有兩個下標的二維數組。數組一旦定義,它的初始值為邏輯值.F.,下標的起始值是1。DIMENSION命令格式:DIMENSION〈數組名1〉(〈下標1〉[,〈下標2〉])[,〈數組名2〉(〈下標1〉[,〈下標2〉])]…DECLARE命令格式:DECLARE〈數組名1〉(〈下標1〉[,〈下標2〉])[,〈數組名2〉(〈下標1〉[,〈下標2〉])]…以上兩個命令功能:定義一個或多個數組,同時又定義了下標的個數及下標的上界。在VisualFoxPro系統中,數組也可以重新定義,并能動態(tài)地“放大縮小”,如果改變原數組的維數和容量,原數組中每個元素的值不變。因為數組是內存變量,在新定義或重新定義數組時,要特別注意內存空間的大小,避免出現內存不夠的現象。例3.8定義一個一維數組SZ1和一個二維數組SZ2。DIMENSIONSZ1(10),SZ2(5,2)上面這一定義一旦完成,系統就允許使用SZ1和SZ2兩個數組。SZ1是一維數組,SZ1下標的上界10,下界為1。數組元素分別為SZ1(1),SZ1(2),SZ1(3)…SZ1(10)。SZ2是二維數組,SZ2第一個下標為行標,上界5,下界為1,SZ2第二個下標為列標,上界2,下界為1。數組元素分別為SZ2(1,1),SZ2(1,2),SZ2(2,1),SZ2(2,2)…SZ2(5,1),SZ2(5,2)。2.數組類型數組類型是指數組元素的類型。因為每一個數組元素又是一個內存變量,所以它的類型同樣由它接受的數據的類型所決定。在VisualFoxPro系統環(huán)境下,同一個數組元素在不同時刻可以存放不同類型的數據,在同一個數組中,每個元素的值可以是不同的數據類型。3.數組賦值給數組賦值,就是分別給每個數組元素賦值,與給內存變量賦值操作完全相同。例3.9定義一個一維數組X,給所有數組元素賦值并輸出其值。DIMENSIONX(4)X(4)=″12345″STORE0TOX(1),X(2),X(3)?X(1),X(2),X(3),X(4)4.數組傳遞使用命令SCATTER、COPYTOARRAY、GATHER命令,可以實現數據表與數組間數據的傳遞。COPYTOARRAY命令格式:COPYTOARRAY〈數組名〉[FIELDS〈字段名表〉][〈范圍〉][FOR〈條件1〉][WHILE〈條件2〉]SCATTER命令格式:SCATTER[FIELDS〈字段名表〉]TO〈數組名〉以上兩個命令功能:將當前數據表中的數據,傳遞到〈數組名〉指定的數組中。GATHER命令格式:GATHERFROM〈數組名〉[FIELDS〈字段名表〉]命令功能:將〈數組名〉指定的數組中的數據,傳遞到當前數據表中。5.數組特性在VisualFoxPro數據庫管理系統環(huán)境下,對數據庫進行操作時引用數組,會使數據操作更方便。數組和數據表相比有如下優(yōu)點:(1)數組可以不像數據表一樣有一個固定的結構。(2)因為數組中的數據存放在內存中,數據表中的數據存放在磁盤上,所以對數組中數據的訪問比對數據表中的數據訪問速度要快。(3)數組可以在原有的內存空間進行數據排序,不需要額外的內存和磁盤空間。3.3.4字段變量字段變量是數據庫管理系統中的一個重要概念,它與記錄一縱一橫構成了數據表的基本結構。通過前面的學習,我們已經知道,一個數據庫是由若干相關的數據表組成,一個數據表是由若干個具有相同屬性的記錄組成,而每一個記錄又是由若干個字段組成。字段變量就是指數據表中已定義的任意一個字段??梢赃@樣理解,在一個數據表中,同一個字段名下有若干個數據項,而數據項的值取決于該數據項所在記錄行的變化,所以稱它為字段變量,也有人把字段變量稱之為字段名變量。字段變量的數據類型與該字段定義的類型一致。字段變量的類型有數值型、浮點型、整型、雙精度型、字符型、邏輯型、日期型、時間日期型、備注型和通用型等。使用字段變量首先要建立數據表,建立數據表時首先定義的就是字段變量屬性(名字、類型和長度)。字段變量的定義及字段變量數據的輸入、輸出,需要在表設計器和表瀏覽、編輯窗口中進行。有關這方面的內容,將在第4章作詳細的介紹。3.3.5記錄記錄是數據表中一組數據項的集合。在同一個數據表中可以有若干個記錄,每一個記錄具有相同的字段個數。在VisualFoxPro系統中,許多操作都是通過記錄操作來完成的。有關這方面的內容,將在第4章作詳細的介紹。3.3.6對象對象是數據存儲器的一種。對象是類的實體,是任何具有屬性和方法的信息的集合。對象的建立可以通過設計器和CREATEOBJECT()函數實現。在VisualFoxPro系統中,引用對象是可視化編程的重要手段。有關這方面的內容,將在第10章作詳細的介紹。3.4函數VisualFoxPro系統提供了一批具有特定功能的標準函數。這些函數實際上是系統提供的固定的程序,用戶可直接引用,從而完成某些特定的操作。1.標準函數的類型根據每一個函數的功能,可將標準函數大致分為以下類型:(1)數值型函數(2)字符型函數(3)數據轉換函數(4)日期和時間函數(5)變量處理函數(6)數據庫函數(7)環(huán)境函數(8)數據共享函數(9)輸入和輸出函數(10)編程函數(11)動態(tài)鏈接庫函數2.常用的標準函數表3-1所列的是VisualFoxPro系統中的部分標準函數格式及功能。表3-1(書第46頁)3.5表達式表達式是由數據、數據存儲容器和運算符組成的運算式。根據不同的運算符及表達式結果的不同,表達式有五種常用類型。3.5.1算術表達式算術表達式可由算術運算符和數值型常量、數值型內存變量、數值型數組、數值類型的字段、返回數值型數據的函數組成。算術表達式的運算結果是數值型常數。3.5.2字符表達式字符表達式可由字符運算符和字符型常量、字符型內存變量、字符型數組、字符型類型的字段、返回字符型數據的函數組成。字符表達式運算的結果是字符常數或邏輯型常數?!埃焙汀?”兩者均是完成字符串連接的運算。不同的是前者是將運算符“+”兩邊的字符串完全連接;后者則是先去掉運算符“-”前面字符串的尾部空格,然后再與運算符后面的字符串連接。當運算符前面字符串的尾部沒有空格時,兩種連接運算結果是一樣的?!缡前\算,其功能是檢測兩個字符串中,后串是否包含前串的內容。如果后串包含前串的內容,其結果為真(.T.);否則,其結果為假(.F.)。3.5.3時間日期表達式時間日期表達式可由時間日期運算符和時間日期型常量、時間日期型內存變量和數組、返回時間日期型數據的函數組成?!埃边\算符的運算規(guī)則是在已給的日期上加天數或在已給的時間日期上加秒數?!?”運算符的運算規(guī)則是計算已給的兩個日期相差的天數或計算已給的兩個時間日期相差的秒數。3.5.4關系表達式關系表達式可由關系運算符和字符表達式、算術表達式、時間表達式組成。關系運算是運算符兩邊同類型元素的比較,其運算結果為邏輯型常量,關系成立結果為(T);反之,結果為(F)。3.5.5邏輯表達式邏輯表達式可由邏輯運算符和邏輯型常量、邏輯型內存變量、邏輯型數組、返回邏輯型數據的函數和關系表達式組成。邏輯表達式的運算結果是邏輯型常量。3.5.6名表達式在VisualFoxPro系統中,允許給命令和函數定義另一個“名字”。這一“名字”一旦存入到內存變量中,就可以在引用命令和函數時,用內存變量來代替,這樣就給程序開發(fā)帶來很多便利。存于內存變量中的命令和函數名,可以通過間接引用或宏替換方式使用。1.間接引用把命令和函數名賦給內存變量,再取內存變量。例3.10STORE″c:\lyl\mumber″TOnameUSE(name)BROWSE2.宏替換方式把命令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆江蘇省揚州市高郵市高三下學期開學考英語試題及答案
- 營銷管理競聘會
- 2024江蘇東海農業(yè)發(fā)展集團有限公司招聘勞務派遣人員7人筆試參考題庫附帶答案詳解
- 社工工作總結報告
- 安全事故處理與風險評估
- 不同體重指數的2型糖尿病患者皮膚糖基化終末產物與脈搏波傳導速度的相關性研究
- 老年人的骨質疏松防治指南
- 山東省煙臺市2024-2025學年高二上學期期末語文試題(原卷版+解析版)
- 2024四川雅安文投中醫(yī)藥大健康產業(yè)發(fā)展有限公司考察聘用1名主管會計筆試參考題庫附帶答案詳解
- 2024四川甘孜州雅江縣招聘縣屬國有投資集團有限公司經理層管理人員2人筆試參考題庫附帶答案詳解
- 2025年鐵嶺衛(wèi)生職業(yè)學院單招職業(yè)傾向性測試題庫新版
- 2025年安徽水利水電職業(yè)技術學院單招職業(yè)技能測試題庫參考答案
- 2025年時政題庫及答案(100題)
- 2025年鐘山職業(yè)技術學院單招職業(yè)技能測試題庫帶答案
- 重慶市南開名校2024-2025學年八年級下學期開學考試物理試題(含答案)
- 2025年共青科技職業(yè)學院單招職業(yè)技能測試題庫附答案
- 2025年湖南生物機電職業(yè)技術學院單招職業(yè)傾向性測試題庫1套
- 2025年部編教材對道德與法治的啟示心得體會
- 《預算編制要點講解》課件
- 2025年交管12123學法減分試題庫附參考答案
- 2025年360億方智能航空AI白皮書-愛分析
評論
0/150
提交評論