版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Visual FoxPro數(shù)據(jù)庫應(yīng)用技術(shù) 1目錄第1章 Visual FoxPro系統(tǒng)概述 第2章 VFP的數(shù)據(jù)與表達(dá)式 第3章 表的創(chuàng)建與使用 第4章 表的基本操作 第5章 數(shù)據(jù)庫的創(chuàng)建與操作 第6章 視圖與查詢 第7章 創(chuàng)建項目 2目錄第8章 程序設(shè)計基礎(chǔ) 第9章 表單設(shè)計與應(yīng)用 第10章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL 第11章 菜單與工具欄的設(shè)計應(yīng)用 第12章 報表設(shè)計 第13章 小型系統(tǒng)開發(fā)實例 3第1章Visual FoxPro系統(tǒng)概述 1-1數(shù)據(jù)庫的基本概念 11-2數(shù)據(jù)庫的類型 21-3關(guān)系數(shù)據(jù)庫 31-4如何設(shè)計數(shù)據(jù)庫 51-5 VFP 的運行環(huán)境 61-6 VFP啟動與退出 71
2、-7 VFP用戶界面 941-1數(shù)據(jù)庫的基本概念1-1-1 什么是數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng) 11-1-2 數(shù)據(jù)庫系統(tǒng)的優(yōu)點 251-1數(shù)據(jù)庫的基本概念1-1-1 什么是數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)1數(shù)據(jù)庫(DataBase簡稱DB) 數(shù)據(jù)庫可通俗的理解為存放數(shù)據(jù)的倉庫。它是指按照一定的組織結(jié)構(gòu)存儲在計算機存儲設(shè)備(如軟盤、硬盤)上并可共享的相關(guān)數(shù)據(jù)的集合。它既反映了描述事物的數(shù)據(jù)本身,又反映了相關(guān)事物之間的聯(lián)系。數(shù)據(jù)庫與應(yīng)用程序彼此獨立。對數(shù)據(jù)的增加、刪除、修改和檢索由數(shù)據(jù)庫管理系統(tǒng)進(jìn)行統(tǒng)一的控制。62數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System簡稱DB
3、MS) 數(shù)據(jù)庫管理系統(tǒng)是用戶用來建立、使用和管理數(shù)據(jù)庫的軟件系統(tǒng)。它屬于計算機系統(tǒng)軟件。它主要具有數(shù)據(jù)庫的定義、操作、運行和維護(hù)等功能,并提供了數(shù)據(jù)的安全性檢查和完整性約束控制,以方便用戶對大量的數(shù)據(jù)進(jìn)行管理和存儲。73數(shù)據(jù)庫系統(tǒng)(DataBase System簡稱DBS) 數(shù)據(jù)庫系統(tǒng)是指帶有數(shù)據(jù)庫的計算機系統(tǒng),它包括相應(yīng)計算機硬件系統(tǒng)、軟件系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員和用戶。其中,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心組成部分。84數(shù)據(jù)庫應(yīng)用系統(tǒng)(DataBase Application System簡稱DBAS) 數(shù)據(jù)庫應(yīng)用系統(tǒng)是指用戶為了解決某一類信息處理的實際問題而利用數(shù)據(jù)庫系
4、統(tǒng)開發(fā)的軟件系統(tǒng)。5數(shù)據(jù)庫管理員(DataBase Administrator簡稱DBA) 數(shù)據(jù)庫管理員是負(fù)責(zé)數(shù)據(jù)庫全面維護(hù),具有較高計算機應(yīng)用技術(shù)水平的系統(tǒng)工作人員。91-1-2數(shù)據(jù)庫系統(tǒng)的優(yōu)點1數(shù)據(jù)結(jié)構(gòu)化且統(tǒng)一管理 數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)是有結(jié)構(gòu)的,并且由數(shù)據(jù)庫管理系統(tǒng)進(jìn)行統(tǒng)一的管理。數(shù)據(jù)庫系統(tǒng)不僅可以表示事物內(nèi)部數(shù)據(jù)之間的聯(lián)系,而且還可以表示事物與事物之間的聯(lián)系。因此,在設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)時,不應(yīng)以某個具體應(yīng)用系統(tǒng)的需求作為惟一依據(jù),一定要考慮整個數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu),不僅要反映數(shù)據(jù)本身,還要反映出數(shù)據(jù)之間的聯(lián)系。102數(shù)據(jù)共享,冗余度小 數(shù)據(jù)庫中的數(shù)據(jù)由系統(tǒng)統(tǒng)一管理,集中存儲。數(shù)據(jù)庫系統(tǒng)從整體規(guī)
5、劃描述系統(tǒng)的數(shù)據(jù),數(shù)據(jù)不僅面向具體的應(yīng)用,而且還面向整個系統(tǒng)的應(yīng)用。系統(tǒng)中的各種用戶可以根據(jù)各自應(yīng)用的需求訪問不同的數(shù)據(jù)子集,以達(dá)到數(shù)據(jù)的共享,提高數(shù)據(jù)的利用率,同時也大大減少數(shù)據(jù)的冗余,節(jié)約了數(shù)據(jù)存儲空間,有利于保持?jǐn)?shù)據(jù)的一致性。3數(shù)據(jù)獨立性較高 數(shù)據(jù)獨立性是指數(shù)據(jù)庫中數(shù)據(jù)的邏輯組織和物理存儲方式與用戶的應(yīng)用程序無關(guān)。任何一方的改變一般不會影響另一方114數(shù)據(jù)控制功能較強 數(shù)據(jù)庫中的數(shù)據(jù)被多個用戶或應(yīng)用程序所共享。當(dāng)多個用戶同時存取或修改數(shù)據(jù)庫中的數(shù)據(jù)時,可能會發(fā)生相互之間的干擾,產(chǎn)生錯誤數(shù)據(jù),甚至破壞數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)提供較強的保護(hù)控制功能,它包括數(shù)據(jù)的并發(fā)控制功能、數(shù)據(jù)的安全性控制功
6、能和數(shù)據(jù)的完整性控制功能,以避免由于控制不當(dāng)而使數(shù)據(jù)產(chǎn)生錯誤。121-2數(shù)據(jù)庫的類型1-2-1 層次模型 21-2-2 網(wǎng)狀模型 31-2-3 關(guān)系模型 3131-2-1 層次模型 層次模型是用樹型結(jié)構(gòu)來表示各數(shù)據(jù)記錄之間的關(guān)系。數(shù)據(jù)記錄是對現(xiàn)實世界中存在的各種事物(也稱為實體)的抽象表示。層次模型中,記錄類型間只有簡單的層次聯(lián)系,即樹根與樹枝(也稱父與子)的關(guān)系,這種關(guān)系是一對多關(guān)系。它的優(yōu)點是簡單、直觀、處理方便,適合于表現(xiàn)具有比較規(guī)范的層次關(guān)系的結(jié)構(gòu),缺點是不能直接表現(xiàn)含有多對多聯(lián)系的復(fù)雜結(jié)構(gòu)。 141-2-2 網(wǎng)狀模型 網(wǎng)狀模型是用網(wǎng)狀結(jié)構(gòu)來表示實體及其之間的聯(lián)系。網(wǎng)狀模型中各實體之間
7、允許有多于一種的聯(lián)系。因此,網(wǎng)狀模型可以方便地表示記錄類型間多對多的聯(lián)系,但結(jié)構(gòu)比較復(fù)雜,數(shù)據(jù)處理比較困難。151-2-3 關(guān)系模型 關(guān)系模型是用二維表結(jié)構(gòu)來表示實體及其之間的聯(lián)系,如下表所示的學(xué)生情況表。學(xué)生情況表 關(guān)系模型是建立在嚴(yán)格的數(shù)學(xué)理論的基礎(chǔ)上,數(shù)據(jù)結(jié)構(gòu)簡單、清晰,易于操作和管理,是目前應(yīng)用最廣泛、發(fā)展最快速的數(shù)據(jù)模型。 161-3關(guān)系數(shù)據(jù)庫1-3-1 關(guān)系術(shù)語 41-3-2 關(guān)系數(shù)據(jù)庫的特點 41-3-3 關(guān)系操作 4171-3 關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫就是用關(guān)系模型構(gòu)成的數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫由至少一個或多個數(shù)據(jù)表組成,各數(shù)據(jù)表之間可建立相互聯(lián)系。如圖1-1所示,各個表之間通過公共屬
8、性聯(lián)系起來。圖1-1 一個數(shù)據(jù)庫中的5個數(shù)據(jù)表 181-3-1 關(guān)系術(shù)語1關(guān)系 一個關(guān)系就是一張二維表,表的每一列為一個屬性(也稱為字段),表的每一行為一個元組(也稱為記錄),它是一組字段的信息的集合 關(guān)系用關(guān)系模式來描述,一個關(guān)系模式對應(yīng)一個關(guān)系的結(jié)構(gòu),其格式為:關(guān)系名(屬性名1,屬性名2,屬性名3,屬性名n) 如學(xué)生選課表的關(guān)系模式為:學(xué)生選課表(學(xué)號,課程名,學(xué)分,成績)192主關(guān)鍵字 用來惟一標(biāo)識表中記錄的字段或字段的組合。如學(xué)生情況表中的學(xué)號可作為主關(guān)鍵字,它能惟一標(biāo)識表中的每一條記錄,即表中不能有兩個相同的學(xué)號出現(xiàn)。3外部關(guān)鍵字 用來與另一個關(guān)系進(jìn)行連接的字段,且是另一個關(guān)系中的主
9、關(guān)鍵字。如學(xué)生成績中的學(xué)號就可以作外部關(guān)鍵字,可用其與學(xué)生情況表進(jìn)行連接,在學(xué)生情況表中,學(xué)號是主關(guān)鍵字。201-3-2 關(guān)系數(shù)據(jù)庫的特點1關(guān)系(表)中的每一個屬性(字段)必須是不可再分的數(shù)據(jù)單元,即一個字段不能再分成兩個字段。2同一個表中不能出現(xiàn)相同的屬性名(字段名),即不能出現(xiàn)相同的列。3同一個表中同一列的數(shù)據(jù)類型必須相同。4同一個表中不能出現(xiàn)相同的元組(記錄),即不能出現(xiàn)相同的行。5同一個表中記錄的次序和字段次序可以任意交換,不影響實際存儲的數(shù)據(jù)。211-3-3 關(guān)系操作 關(guān)系數(shù)據(jù)庫管理系統(tǒng)能完成三種關(guān)系操作:選擇、投影、連接。1選擇 選擇操作是指從關(guān)系中選出那些滿足條件的記錄,即從二維
10、表的行中查找記錄。例如,從學(xué)生情況表中找出籍貫是北京的同學(xué),所進(jìn)行的操作就是選擇操作。2投影 投影操作是指從關(guān)系中選出所需的若干字段,即從二維表的列中選擇字段。例如,從學(xué)生情況表中找出所有同學(xué)的學(xué)號、姓名、性別、出生日期,所進(jìn)行的操作就是投影操作。223連接 連接操作是將兩個關(guān)系橫向拼接成一個新的關(guān)系,新關(guān)系中包含滿足條件的記錄。例如,從學(xué)生情況表和學(xué)生成績表中按對應(yīng)學(xué)號相同的條件給出學(xué)生的學(xué)號、姓名、性別、高等數(shù)學(xué)、大學(xué)物理和英語等成績,所進(jìn)行的操作就是連接操作。231-4如何設(shè)計數(shù)據(jù)庫1-4-1 數(shù)據(jù)庫設(shè)計的步驟 51-4-2 用VFP設(shè)計數(shù)據(jù)庫的步驟 5241-4-1 數(shù)據(jù)庫設(shè)計的步驟1
11、需求分析階段 設(shè)計數(shù)據(jù)庫首先必須準(zhǔn)確了解與分析用戶的需求,包括數(shù)據(jù)需求與處理需求。數(shù)據(jù)需求是指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì),由此可以得到數(shù)據(jù)庫中需要存儲什么樣的數(shù)據(jù)。處理需求是指用戶需要完成什么處理功能。2概念結(jié)構(gòu)設(shè)計階段 概念結(jié)構(gòu)設(shè)計階段主要是對用戶需求進(jìn)行綜合、歸納和抽象。形成一個獨立于具體的數(shù)據(jù)庫管理系統(tǒng)的概念模型。即對數(shù)據(jù)進(jìn)行抽象,確定實體、實體的屬性、標(biāo)識實體的關(guān)鍵字以及實體之間的聯(lián)系,并用實體聯(lián)系圖表示出來。253邏輯結(jié)構(gòu)設(shè)計階段 邏輯結(jié)構(gòu)設(shè)計階段主要是考慮實現(xiàn)數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型的類型。目前廣泛使用的數(shù)據(jù)庫管理系統(tǒng)是基于關(guān)系數(shù)據(jù)模型的,所以邏輯結(jié)構(gòu)設(shè)計階段的任
12、務(wù)就是把概念結(jié)構(gòu)設(shè)計階段所得到的ER圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型。4物理設(shè)計階段 物理設(shè)計階段就是設(shè)計數(shù)據(jù)庫存儲結(jié)構(gòu)和物理實現(xiàn)方法。261-4-2 用VFP設(shè)計數(shù)據(jù)庫的步驟1需求分析 根據(jù)實際情況,分析數(shù)據(jù)需求與處理需求,確定數(shù)據(jù)庫的設(shè)計目的,確定數(shù)據(jù)庫中需要存儲哪些信息及建立哪些對象。2確定數(shù)據(jù)庫中需要的表 確定數(shù)據(jù)庫中的表就是把需求信息劃分為各個獨立的實體,每個實體設(shè)計為數(shù)據(jù)庫中的一個表。如學(xué)生情況表、學(xué)生成績表、課程表、教師表等。每個表只能包含關(guān)于一個實體的的信息,每個表必須具有關(guān)系數(shù)據(jù)庫的特點。273確定表中需要的字段 確定在每一個表中需要存儲的字段,字段的數(shù)據(jù)類型和主關(guān)鍵字,即建立表的結(jié)構(gòu)。
13、 確定字段時應(yīng)注意以下幾點:(1)每個字段要直接與實體相關(guān)。(2)字段必須是原始數(shù)據(jù)。(3)每個字段保存的信息都是不可再分的數(shù)據(jù)項。(4)每個表必須有一個或一組字段用來惟一確定表中的每一條記錄,即要有主關(guān)鍵字。284確定表間關(guān)系數(shù)據(jù)表之間的關(guān)系有三種:(1)一對一關(guān)系 一對一關(guān)系是指A表中的一條記錄只能對應(yīng)B表中的一條記錄,并且B表中的一條記錄也只能對應(yīng)A表中的一條記錄。(2)一對多關(guān)系 一對多關(guān)系是指A表中的一條記錄能對應(yīng)B表中的多條記錄,但是B表中的一條記錄只能對應(yīng)A表中的一條記錄。29(3)多對多關(guān)系 多對多關(guān)系是指A表中的一條記錄能對應(yīng)B表中的多條記錄,而B表中的一條記錄也可以對應(yīng)A表
14、中的多條記錄。5優(yōu)化設(shè)計 在初步完成了上面4個步驟后,應(yīng)該重新檢查設(shè)計方案,找出任何可能存在的不足之處,并進(jìn)行及時的修改。只有經(jīng)過反復(fù)的修改,才能設(shè)計出一個完善的數(shù)據(jù)庫,開發(fā)出較好的數(shù)據(jù)庫應(yīng)用系統(tǒng)。301-5 VFP 的運行環(huán)境1-5-1 運行的硬件環(huán)境 61-5-2 運行的軟件環(huán)境 6311-5 VFP 的運行環(huán)境1-5-1運行的硬件環(huán)境1中央處理器CPU:486DX/66MHz或更高處理器及其兼容機。2內(nèi)存:至少16MB或以上空間。3硬盤:至少100MB,完全安裝需240MB空間。4顯示器:VGA或更高分辨率的顯示器。1-5-2運行的軟件環(huán)境操作系統(tǒng):中文Windows 95/98/200
15、0或Windows XP、Windows NT 4.0及更高版本的視窗操作系統(tǒng)。321-6 VFP啟動與退出1-6-1啟動VFP 71-6-2命令窗口的隱藏與顯示 81-6-3 退出VFP 8331-6-1 啟動VFP方法一:單擊“開始程序Microsoft Visual FoxPro 6.0Microsoft Visual FoxPro 6.0”命令。方法二:雙擊桌面“Microsoft Visual FoxPro 6.0”快捷方式圖標(biāo)。方法三:單擊快速啟動欄中“Microsoft Visual FoxPro 6.0”按鈕。 VFP的主窗口 341-6-2 命令窗口的隱藏與顯示 命令窗口是用
16、于輸入交互命令的窗口。用戶可在該窗口中直接輸入VFP的各條命令,輸入每一條命令后,一定要按回車鍵,否則命令不被執(zhí)行。有一部分VFP命令在執(zhí)行后其結(jié)果將顯示在工作區(qū)中。 命令窗口的隱藏與顯示操作方法:方法一:單擊命令窗口的關(guān)閉按鈕或選擇“窗口隱藏”命令,即可隱藏命令窗口,選擇“窗口命令窗口”命令可重新打開命令窗口。方法二:單擊“常用”工具欄上的“命令窗口”按鈕可顯示或隱藏命令窗口。方法三:按Ctrl+F4組合鍵可隱藏命令窗口。 按Ctrl+F2組合鍵可顯示命令窗口。351-6-3 退出VFP 退出VFP一般有以下幾種方法:方法一:單擊VFP主窗口右上角的關(guān)閉按鈕。方法二:選擇“文件退出”命令。方
17、法三:單擊標(biāo)題欄左邊的系統(tǒng)控制菜單圖標(biāo),打開其下拉菜單,選擇“關(guān)閉”命令。方法四:雙擊標(biāo)題欄左邊的系統(tǒng)控制菜單圖標(biāo)。方法五:在命令窗口中鍵入QUIT,并按回車鍵。 361-7 VFP用戶界面1-7-1 VFP的工作方式 91-7-2 VFP的命令 91-7-3 VFP的向?qū)?、設(shè)計器和生成器 101-7-4 VFP的項目管理器 101-7-5設(shè)置默認(rèn)磁盤目錄 111-7-6幫助系統(tǒng)的使用 12371-7-1 VFP的工作方式1人機交互方式 人機交互方式就是用戶利用菜單或工具按鈕選擇一條命令,或者在命令窗口中輸入一條命令,并按回車鍵,系統(tǒng)立即執(zhí)行。特點是:輸入或選擇一條命令,系統(tǒng)立即執(zhí)行一條命令,
18、主窗口顯示相應(yīng)的結(jié)果。此方式簡單、直觀、便捷。2程序執(zhí)行方式(也稱命令文件方式) 程序執(zhí)行方式是把多條命令按一定的順序編寫成一個程序,以擴展名為.PRG的文件類型存盤,通過運行該程序,系統(tǒng)就可自動連續(xù)地執(zhí)行一系列命令,從而完成程序所規(guī)定的任務(wù)。此方式體現(xiàn)了自動化的工作方式。 381-7-2 VFP的命令 VFP的命令格式為:命令動詞 1命令動詞 命令動詞是命令的開頭,它是一個英文動詞,通常簡要表達(dá)了命令要執(zhí)行的操作。2子句 子句是命令的可選項,它主要用來修飾或限制命令,一般有以下三個方面的內(nèi)容。39(1)范圍子句,該子句指定在哪些記錄范圍內(nèi)執(zhí)行命令??蛇x擇下面四種范圍之一: ALL 指定數(shù)據(jù)表
19、的全部記錄 RECORD 指定數(shù)據(jù)表的第N條記錄 NEXT 指定數(shù)據(jù)表中從當(dāng)前記錄開始及 其隨后的共N條記錄 REST 指定數(shù)據(jù)表中從當(dāng)前記錄開始到最后一條記錄 若范圍缺省,則范圍的含義在不同的命令中有不同的規(guī)定,有時指全部記錄,有時指當(dāng)前記錄。40(2)FIELDS 子句,該子句后面跟字段名表(各字段名之間用逗號隔開),指定對數(shù)據(jù)表中的哪些字段執(zhí)行命令。若FIELDS缺省,則對所有字段執(zhí)行命令。(3)FORWHILE子句,該條件子句后面跟邏輯表達(dá)式,它表示只對那些能使條件為真,即表達(dá)式的結(jié)果為.T.的記錄執(zhí)行命令。FOR條件是指對滿足條件所有的記錄執(zhí)行命令;WHILE條件是指從當(dāng)前記錄開始按
20、順序?qū)M足條件的記錄執(zhí)行命令,只要遇到不滿足條件的記錄就停止執(zhí)行命令,不論指定范圍內(nèi)是否還有符合條件的記錄。 413命令書寫規(guī)則(1)一條命令由命令動詞和子句組成。必須以命令動詞開頭,命令中可含有一個或多個子句,子句之間的順序任意。(2)命令動詞和子句之間,子句和子句之間用空格分隔開,空格數(shù)任意。(3)命令動詞以及子句中的英文關(guān)鍵字可以縮寫,只取動詞的前4個字符,大小寫字母均可。42(4)每一條命令的最大長度(含空格)為254個字符,一行命令太長寫不完時,可用分號“;”(續(xù)行符)分隔,它連接下一行寫入的內(nèi)容,使之成為一條完整的命令。 注意:命令行中用方括號 括起的選項為可選項;用尖括號 括起的
21、選項為必選項,其中內(nèi)容用戶提供;這兩種括號本身不寫入命令中。圓括號( )本身為命令的內(nèi)容,應(yīng)寫入。431-7-3 VFP的向?qū)?、設(shè)計器和生成器1向?qū)?向?qū)且环N交互式程序,用戶通過它所提供的一組對話框進(jìn)行選擇或回答問題,從而幫助用戶快速完成一般性的任務(wù)。如創(chuàng)建表、創(chuàng)建表單、設(shè)置報表格式、建立查詢等。VFP中帶有20多種向?qū)А?啟動向?qū)У囊话惴椒ㄊ牵海?)選擇“文件新建”命令,打開“新建”對話框。(2)選擇具體文件類型,單擊“向?qū)А卑粹o,就可啟動向?qū)?,打開相應(yīng)的對話框,用戶根據(jù)實際需要回答相應(yīng)的問題或進(jìn)行相應(yīng)的選擇,就可創(chuàng)建相應(yīng)類型的文件。442設(shè)計器 設(shè)計器是創(chuàng)建和修改應(yīng)用程序的各種組件的可視
22、化的設(shè)計工具。利用這些可視化設(shè)計工具創(chuàng)建表、表單、數(shù)據(jù)庫、查詢等都變得簡單、快速。VFP中帶有9種設(shè)計器,不同的設(shè)計器其功能不同,具體使用方法在后面章節(jié)中介紹。3生成器 生成器是帶有選項卡的對話框,用于簡化表單、復(fù)雜控件和參照完整性代碼的創(chuàng)建和修改過程。每個生成器顯示一系列選項卡,用于設(shè)置選中的對象的屬性。VFP中帶有十多種生成器,不同的生成器其功能不同,具體使用方法在后面章節(jié)中介紹。451-7-4 VFP的項目管理器 項目是指文件、數(shù)據(jù)、文檔和VFP對象的集合。項目管理器是VFP中處理數(shù)據(jù)和對象的主要組織工具,它為用戶提供了極為方便的工作平臺。用戶可以利用它所提供的簡便的、可視化的方法來創(chuàng)建
23、和管理數(shù)據(jù)庫、表、表單、查詢、報表、應(yīng)用程序和其它一切文件,形成一個擴展名為.PJX項目文件。在項目管理器中還可以將應(yīng)用程序編譯生成擴展名為.APP的應(yīng)用程序,在VFP環(huán)境下運行;也可編譯生成直接在WINDOWS環(huán)境下運行的擴展名為.EXE的可執(zhí)行文件。461-7-5 設(shè)置默認(rèn)磁盤目錄操作步驟:(1)選擇“工具選項”命令,打開“選項”對話框,選擇“文件位置”標(biāo)簽,如下圖所示。 47(2)雙擊“默認(rèn)目錄”選項,或者先單擊“默認(rèn)目錄”選項,再單擊“修改”按鈕,打開“更改文件位置”對話框,如下圖所示?!案奈募恢谩睂υ捒颍?)選定“使用(U)默認(rèn)目錄”復(fù)選框,在文本框內(nèi)輸入指定的目錄,或者單擊文本
24、框右邊的按鈕,打開“選擇目錄”對話框選擇目錄,最后單擊“確定”按鈕,返回“選項”對話框。 48(4)單擊“設(shè)置為默認(rèn)值”按鈕,再單擊“確定”按鈕,則指定目錄設(shè)置為默認(rèn)目錄,即把此種目錄設(shè)置保存在Windows注冊表中。以后每次啟動VFP,此目錄都是系統(tǒng)的默認(rèn)目錄,直到再次設(shè)置默認(rèn)目錄。 如果不單擊“設(shè)置為默認(rèn)值”按鈕,而是直接單擊“確定”按鈕,則此種目錄設(shè)置僅在本次系統(tǒng)運行期間有效,退出系統(tǒng)后,此種設(shè)置隨之作廢。 491.7.6 幫助系統(tǒng)的使用方法一:單擊“幫助”菜單,打開其下級菜單,從中進(jìn)行選擇,可查詢所需的幫助信息。方法二:按F1鍵或單擊常用工具欄中的“ ”按鈕,打開幫助窗口,從列出的各項
25、幫助主題中進(jìn)行選擇。也可直接在命令窗口中鍵入HELP命令并按回車鍵執(zhí)行此命令,打開幫助窗口。方法三:在命令窗口中鍵入HELP加上要獲取說明的命令或名詞并按回車鍵。 50第2章 VFP的數(shù)據(jù)與表達(dá)式 2-1 數(shù)據(jù)類型 152-2 常量 152-3 變量 162-4 表達(dá)式 192-5 函數(shù) 22 512-1 數(shù)據(jù)類型 VFP中每一個數(shù)據(jù)都有一定的類型,數(shù)據(jù)類型決定了數(shù)據(jù)的存儲方式和運算方式,因此,在VFP中任何數(shù)據(jù)須先定義其數(shù)據(jù)類型,然后才能對其進(jìn)行數(shù)據(jù)處理。VFP提供了13種數(shù)據(jù)類型,分別是:字符型、數(shù)值型、貨幣型、邏輯型、日期型、日期時間型、整型、浮點型、雙精度型、備注型、通用型、字符型(二
26、進(jìn)制) 備注型(二進(jìn)制),具體說明見表3-2所示。522-2 常量2-2-1 數(shù)值型常量 152-2-2 字符型常量 152-2-3 日期型常量 152-2-4 日期時間型常量 162-2-5 邏輯型常量 162-2-6 貨幣型常量 16532-2 常量2-2-1數(shù)值型常量 數(shù)值型常量就是整數(shù)、小數(shù)或用科學(xué)記數(shù)法表示的數(shù)。如:125,-456.267,1.345E+20等。2-2-2字符型常量 字符型常量是用字符定界符括起來的字符串。字符定界符有西文的單引號、雙引號或方括號三種。如“計算機,ABC,567.345等。注意:字符定界符必須成對的出現(xiàn)。如果字符串中包含一種定界符,則必須用另一種定界
27、符括起來。如:“計算機”,雙引號為字符定界符,其中的方括號為字符串。 542-2-3 日期型常量 日期型常量就是表示一個確切的日期,用一對花括號作為定界符括起來。系統(tǒng)默認(rèn)的日期格式為美國日期格式(mm/dd/yy),表示月/日/年,“/”為分隔符。分隔符還可以用西文的“-”、“.”和空格表示,如05/25/03表示2003年5月25日。 通過菜單“工具選項”命令或SET DATE,SET CENTURY命令可以改變默認(rèn)的日期格式。 另外,還有一種嚴(yán)格的日期格式,具體表示為:yyyy-mm-dd。如2003-10-15表示2003年10月15日。嚴(yán)格日期格式可以在任何情況下使用,不受SET DA
28、TE,SET CENTURY命令的影響。 552-2-4日期時間型常量 包括兩部分內(nèi)容:,。 同日期型常量,格式為hh:mm:ssa|p,其中hh、mm和ss分別代表時、分和秒;a(AM)和p(PM)分別代表上午和下午,默認(rèn)為上午AM。2-2-5邏輯型常量 邏輯型常量只有兩種邏輯值,即真和假。 真值用.T.,.t.,.Y.,.y.表示,假值用.F.,.f.,.N.,.n.表示。2-2-6貨幣型常量 貨幣型常量用來表示貨幣值,它是以$符號開頭的數(shù)值型常量,系統(tǒng)自動進(jìn)行四舍五入取4位小數(shù)。如$2567.876567,系統(tǒng)存儲為$2567.8766。562-3 變量2-3-1 字段變量 162-3-
29、2 內(nèi)存變量 172-3-3 數(shù)組 182-3-4 系統(tǒng)內(nèi)存變量 18572-3-1字段變量 字段變量是在數(shù)據(jù)表中定義的變量,它存在于數(shù)據(jù)表中,一個數(shù)據(jù)表包含多個字段變量,即多個字段名。字段變量的值隨著數(shù)據(jù)表中記錄的不同而改變。當(dāng)用字段名作變量時,它的當(dāng)前值就是數(shù)據(jù)表中當(dāng)前記錄該字段名所對應(yīng)的值。58【例2.1】打開“學(xué)生情況表”表文件,顯示第2條記錄和第5條記錄的學(xué)號和姓名字段值,結(jié)果如下圖所示。592-3-2 內(nèi)存變量 內(nèi)存變量是用戶通過命令或程序臨時定義的變量,內(nèi)存變量建立后存儲在內(nèi)存中,需要時可把內(nèi)存變量保存在文件中。內(nèi)存變量的數(shù)據(jù)類型由變量值的類型決定,可以把不同類型的數(shù)據(jù)賦值給同一
30、個內(nèi)存變量。內(nèi)存變量的數(shù)據(jù)類型有字符型、數(shù)值型、貨幣型、邏輯型、日期型和日期時間型。601內(nèi)存變量的命名規(guī)則(1)以字母、漢字或下劃線開頭,由字母、漢字、數(shù)字、和下劃線組成。(2)變量名長度最多為128個字符。(3)不能使用系統(tǒng)的保留字。(保留字是指VFP語言使用的關(guān)鍵字,如CREATE命令中的CREATE就是一個系統(tǒng)保留字)。2內(nèi)存變量賦值命令命令格式1:=命令格式2:store to 功能:將的值賦給內(nèi)存變量。說明:格式1只能給一個變量賦值;格式2可以給一批變量賦相同的值,各變量名之間必須用逗號分隔;可對內(nèi)存變量重新賦值來改變其值和類型。61 3顯示內(nèi)存變量命令命令格式:?|?功能:計算的
31、值,并顯示在屏幕上。說明:?表示從VFP主窗口下一行的第一列顯示結(jié)果,?表示從當(dāng)前行當(dāng)前列顯示結(jié)果。【例2.2】在命令窗口中輸入賦值命令給內(nèi)存變量賦值,并顯示內(nèi)存變量的結(jié)果。 624顯示或打印內(nèi)存變量命令格式:LIST|DISPLAY MEMORY LIKE TO PRINT|TO FILE 功能:顯示或打印當(dāng)前已定義的內(nèi)存變量名、作用范圍、類型和值。5內(nèi)存變量的清除命令格式1:CLEAR MEMORY命令格式2:RELEASE 內(nèi)存變量表 ALLLIKE|EXCEPT 功能:清除內(nèi)存變量。632-3-3 數(shù)組 數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)組中的各個變量稱為數(shù)組元素。數(shù)組必須先定義后
32、使用。每個數(shù)組元素可通過數(shù)組名及相應(yīng)的下標(biāo)來訪問。命令格式:DIMENSION|DECLARE (,) , (,)功能:定義一個或多個一維、二維或多維數(shù)組。 64【例2.3】定義數(shù)組,并給數(shù)組賦值。DIMENSION Y(3), X(2,2)Y=123X(1,1)=345X(1,2)=abcX(2,1)=2003-03-25X(4)=.T. ? Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4) 652-3-4 系統(tǒng)內(nèi)存變量 系統(tǒng)內(nèi)存變量是指VFP系統(tǒng)定義的一批變量,它門都以下劃“_”開頭,分別用于控制外部設(shè)備、屏幕輸出格式或處理有關(guān)計算器、日歷、剪貼板等方面的信息。 【例
33、2.4】在命令窗口中輸入DISPLAY MEMORY命令,以滿屏幕暫停的方式顯示當(dāng)前系統(tǒng)的內(nèi)存變量,結(jié)果如圖所示。 662-4 表達(dá)式 2-4-1 數(shù)值表達(dá)式 192-4-2 字符表達(dá)式 192-4-3 日期與日期時間表達(dá)式 202-4-4 關(guān)系表達(dá)式 202-4-5 邏輯表達(dá)式 21672-4-1 數(shù)值表達(dá)式 數(shù)值表達(dá)式是由算術(shù)運算符將數(shù)值型數(shù)據(jù)連接起來的表達(dá)式,其運算結(jié)果仍然是數(shù)值型數(shù)據(jù)。算術(shù)運算符及優(yōu)先級為:( )、*或、*、/、%、+、-【例2.5】計算( - )的值。?(7*2-1/5)*6 682-4-2 字符表達(dá)式 字符表達(dá)式是由字符運算符將字符型數(shù)據(jù)連接起來的表達(dá)式,其運算結(jié)果
34、仍然是字符型數(shù)據(jù)。字符運算符有:+、-+:前后兩個字符串連接形成一個新的字符串。-:前后兩個字符串連接,并把前字符串的尾部空格移到連接后的字符串尾部。【例2.6】字符串連接?數(shù)據(jù)庫 +管理?數(shù)據(jù)庫 -管理692-4-3 日期與日期時間表達(dá)式 日期與日期時間表達(dá)式是由日期運算符將日期或日期時間數(shù)據(jù)連接起來的表達(dá)式,其運算結(jié)果是日期或日期時間數(shù)據(jù),也可以是數(shù)值型數(shù)據(jù)。 日期運算符有:+、- 合法的日期時間表達(dá)式如下表所示。表達(dá)式結(jié)果及類型+日期型(指定天數(shù)后的日期)-日期型(指定天數(shù)前的日期)-數(shù)值型(兩個日期之間的天數(shù)) +日期時間型(指定秒數(shù)后的日期時間)-日期時間型(指定秒數(shù)前的日期時間)
35、-數(shù)值型(兩個日期時間之間的秒數(shù))70【例2.7 】 日期運算?2003/05/08+15?2003/05/08-2003/03/15?2003/05/08,10:35:10 am+120712-4-4 關(guān)系表達(dá)式 關(guān)系表達(dá)式是由關(guān)系運算符將兩個運算對象連接起來的式子,即:,其運算結(jié)果是邏輯型數(shù)據(jù).T.或.F.。 關(guān)系運算符見下表所示。 運算符意義運算符意義 大于=大于等于 小于=小于等于= 等于=字符串精確比較、 #或!= 不等于$包含說明:關(guān)系運算符兩邊表達(dá)式的數(shù)據(jù)類性必須相同。 72【例2.8】關(guān)系運算?1015,abc2003/03/15,.t.f.?ab$abd,北京大學(xué)$大學(xué)SET
36、 EXACT OFF?數(shù)據(jù)庫系統(tǒng)=數(shù)據(jù)庫?數(shù)據(jù)庫=數(shù)據(jù)庫系統(tǒng)?數(shù)據(jù)庫=數(shù)據(jù)庫系統(tǒng)SET EXACT ON?數(shù)據(jù)庫系統(tǒng)=數(shù)據(jù)庫?數(shù)據(jù)庫=數(shù)據(jù)庫系統(tǒng)?數(shù)據(jù)庫=數(shù)據(jù)庫系統(tǒng)?數(shù)據(jù)庫=數(shù)據(jù)庫 732-4-5 邏輯表達(dá)式 邏輯表達(dá)式是由邏輯運算符將邏輯型數(shù)據(jù)連接起來的表達(dá)式,其運算結(jié)果仍然是邏輯數(shù)據(jù).T.或.F.。 邏輯運算符及優(yōu)先級為:.NOT.或!、.AND.、.OR. 邏輯運算規(guī)則見下表所示。 表達(dá)式1表達(dá)式2.NOT.表達(dá)式1 表達(dá)式1.AND.表達(dá)式2表達(dá)式1.OR.表達(dá)式2.T.T.F.T.T.T.F.F.F.T.F.T.T.F.T.F.F.T.F.F.注意:邏輯運算符兩邊的點可以省略,即可寫
37、成NOT、AND、OR。 74 用不同類型的運算符可寫出不同類型的表達(dá)式,如果一個表達(dá)式中同時用了不同類型的運算符,則運算符的優(yōu)先級順序由高到低為:括號算術(shù)運算符字符運算符日期時間運算符關(guān)系運算符邏輯運算符?!纠?.9】邏輯運算?2*56 and abcabcd or 122003/03/15 .and. .not .t.f. 752-5 函數(shù) 2-5-1 數(shù)值函數(shù) 222-5-2 字符函數(shù) 23 2-5-3 日期和時間函數(shù) 252-5-4 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 262-5-5 測試函數(shù) 272-5-6 其它函數(shù) 29762-5-1 數(shù)值函數(shù) 數(shù)值函數(shù)是指自變量和函數(shù)值一般都是數(shù)值型數(shù)據(jù)的函數(shù)。1
38、.絕對值函數(shù)格式:ABS()功能:返回指定的數(shù)值表達(dá)式值的絕對值?!纠?.10】?ABS(50),ABS(-50)2.取整函數(shù)格式:INT()功能:返回指定的數(shù)值表達(dá)式值的整數(shù)部分?!纠?.11】?INT(12.625*2),INT(-3.45) 773.四舍五入函數(shù)格式:ROUND(1,)功能:計算的值,并按指明的位數(shù)四舍五入。說明:大于等于0,表示保留小數(shù)的位數(shù)。若小于0,表示整數(shù)部分的舍入的位數(shù)?!纠?.12】?ROUND(12.625,2),ROUND(12.625,0)?ROUND(123.45,-1),ROUND(123.45,-2) 784.求平方根函數(shù)格式:SQRT()功能:返
39、回指定的數(shù)值表達(dá)式的平方根值。自變量表達(dá)式的值不能為負(fù)。【例2.13】?SQRT(81),SQRT(9.3)5.最大值函數(shù)格式:MAX(,)功能:計算各表達(dá)式的值,并返回其中的最大值?!纠?.14】?MAX(-3,2*4,2*3) 796.最小值函數(shù)格式:MIN(,)功能:計算各表達(dá)式的值,并返回其中的最小值。【例2.15】?MIN(-25,234,24*24)7.求余數(shù)函數(shù)格式:MOD(,)功能:返回除以后的余數(shù)。說明:的值不能為0;余數(shù)的正負(fù)號與除數(shù)相同.【例2.16】:?MOD(8,3),MOD(8,-3) ?MOD(-8,3),MOD(-8,-3) 808.求自然對數(shù)函數(shù)格式:LOG(
40、)功能:返回的自然對數(shù)的值。【例2.17】?LOG(25.5*4) 812-5-2 字符函數(shù)1.求字符串長度函數(shù)格式:LEN()功能:返回指定值的字符個數(shù)。函數(shù)值為數(shù)值型?!纠?.18】?LEN(學(xué)生+管理)2.取子串函數(shù)格式:SUBSTR(,)功能:從指定的開始,按取值的子字符串。說明:如果缺省,子串為從開始直到最后一個字符?!纠?.19】?SUBSTR(學(xué)生+管理,5) ?SUBSTR(學(xué)生+管理,1,4) 823.產(chǎn)生空格函數(shù)格式:SPACE()功能:產(chǎn)生值指定的空格?!纠?.20】?學(xué)生+SPACE(2)+管理4.大寫字母轉(zhuǎn)換為小寫字母函數(shù)格式:LOWER()功能:將指定值中大寫字母變
41、為小寫字母?!纠?.21】:?LOWER(Good morning) 835.小寫字母轉(zhuǎn)換為大寫字母函數(shù)格式:UPPER()功能:將指定值中小寫字母變?yōu)榇髮懽帜浮!纠?.22】? UPPER(Good morning)6.刪除字符串尾部空格函數(shù)格式:TRIM()功能:刪除指定值尾部的空格?!纠?.23】?LEN(數(shù)據(jù)庫 ) ?LEN(TRIM(數(shù)據(jù)庫 ) 847.刪除字符串左邊空格函數(shù)格式:LTRIM()功能:刪除指定值左邊部分的空格。【例2.24】?學(xué)生+ 管理 ?學(xué)生+LTRIM( 管理)8.刪除字符串左右兩邊空格函數(shù)格式:ALLTRIM()功能:刪除指定值左右兩邊的空格。【例2.25】?
42、LEN( 管理 ) ?LEN(ALLTRIM( 管理 ) 859.取左子串函數(shù)格式:LEFT(,)功能:按值取指定值的左邊子字符串?!纠?.26】?LEFT(數(shù)據(jù)庫管理系統(tǒng),6)10.取右子串函數(shù)格式:RIGHT(,)功能:按值取指定值的右邊子字符串?!纠?.27】?RIGHT(數(shù)據(jù)庫管理系統(tǒng),4) 8611.子串位置測試函數(shù)格式:AT(,)功能:判斷值是否是值的子串,若是,返回值的首字符在值的起始位置;若不是,則返回0。函數(shù)值為數(shù)值型。說明:值表明在中出現(xiàn)的次數(shù),其默認(rèn)值為1。【例2.28】?AT(管理,學(xué)生管理)8712. 宏替換函數(shù)格式:&().功能:替換指定的內(nèi)容。說明:如果該函數(shù)與其
43、后的字符無明確分界,則要用“.”作函數(shù)結(jié)束標(biāo)識。宏替換函數(shù)可以嵌套使用?!纠?.29】y=150 ?&y ?50+&y x=創(chuàng)建 ?&x.數(shù)據(jù)庫 882-5-3日期和時間函數(shù)1.系統(tǒng)日期函數(shù)格式:DATE()功能:返回當(dāng)前系統(tǒng)的日期,函數(shù)值為日期型?!纠?.30】?DATE() 2.系統(tǒng)時間函數(shù)格式:TIME()功能:返回當(dāng)前系統(tǒng)的時間,函數(shù)值為字符型?!纠?.31】?TIME() 893.系統(tǒng)日期時間函數(shù)格式:DATETIME()功能:返回當(dāng)前系統(tǒng)的日期時間,函數(shù)值為日期時間型。【例2.32】?DATETIME()4.求年份函數(shù)格式:YEAR(|)功能:返回指定日期或日期時間表達(dá)式值中的年份
44、。函數(shù)值為數(shù)值型?!纠?.33】?YEAR(2003/05/28) 905.求月份函數(shù)格式:MONTH(|)功能:返回指定日期或日期時間表達(dá)式值中的月份。函數(shù)值為數(shù)值型?!纠?.34】?MONTH(2003/05/28)6.求天數(shù)函數(shù)格式:DAY(|)功能:返回指定日期或日期時間表達(dá)式值中的天數(shù)。函數(shù)值為數(shù)值型?!纠?.35】?DAY(2003/05/28) 912-5-4 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1.字符轉(zhuǎn)換成ASCII碼函數(shù)格式:ASC()功能:將值的第一個字符轉(zhuǎn)換成ASCII碼值,函數(shù)值為數(shù)值型數(shù)據(jù)?!纠?.36】?ASC(abc)2. ASCII碼轉(zhuǎn)換成字符函數(shù)格式:CHR()功能:將的值轉(zhuǎn)換
45、成ASCII碼字符,函數(shù)值為字符型數(shù)據(jù)。【例2.37】?CHR(65) 923.數(shù)值型轉(zhuǎn)換成字符型函數(shù)格式:STR(,)功能:將的值轉(zhuǎn)換成字符型數(shù)據(jù),函數(shù)值為字符型數(shù)據(jù)。說明:字符串的長度由值確定,包括小數(shù)點和負(fù)號各占一位;值表示小數(shù)點的位數(shù)。如果值小于值的整數(shù)部分位數(shù),則返回一串星號(*)。的默認(rèn)值是10位,的默認(rèn)值是0。 【例2.38】 X=STR(345.456,6,2) ?X ?VARTYPE(X) ?STR(345.456,2) ?STR(345.456)934.字符型轉(zhuǎn)換成數(shù)值型函數(shù)格式:VAL()功能:將的值轉(zhuǎn)換成相應(yīng)的數(shù)值型數(shù)據(jù)。說明:若字符串內(nèi)出現(xiàn)非數(shù)值字符,則只轉(zhuǎn)換前面部分
46、;若字符串的首字符不是數(shù)字符號,則返回數(shù)值0,但忽略前導(dǎo)空格。【例2.39】Y=VAL(3.15) ?Y ?VARTYPE(Y) ?VAL(3A.15) ?VAL(A3.15) 945.字符型轉(zhuǎn)換成日期型函數(shù)格式:CTOD()功能:將的值轉(zhuǎn)換成日期型數(shù)據(jù)?!纠?.40】Z=CTOD(05/28/03) ?Z ?VARTYPE(Z) 956.日期型轉(zhuǎn)換成字符型函數(shù)格式:DTOC(|,1)功能:將日期型或日期時間型數(shù)據(jù)轉(zhuǎn)換成字符串。說明:選項,1表示轉(zhuǎn)換格式為年月日。【例2.41】P=DTOC(CTOD(05/28/03) ?P ?VARTYPE(P)962-5-5 測試函數(shù)1.數(shù)據(jù)類型測試函數(shù)格
47、式:VARTYPE()功能:測試值的數(shù)據(jù)類型,返回代表該類型數(shù)據(jù)的字符C、N、Y、L、G、D、T、X(NULL值)、U(未定義)等?!纠?.42】?VARTYPE(67548) ?VARTYPE(.T.) 97 2.記錄號測試函數(shù)格式:RECNO(工作區(qū)號|)功能:返回指定工作區(qū)表文件中當(dāng)前記錄的記錄號。說明:如果缺省或,指當(dāng)前表文件?!纠?.43】USE D:NEW BOOK學(xué)生情況表 ?RECNO() GO 9 ?RECNO() 983.記錄個數(shù)測試函數(shù)格式:RECCOUNT(工作區(qū)號|)功能:返回指定工作區(qū)中表文件的全部記錄個數(shù)?!纠?.44】USE D:NEW BOOK學(xué)生情況表 ?R
48、ECCOUNT() & 顯示結(jié)果為 10 GO BOTTOM SKIP ?RECNO() 994.表文件首測試函數(shù)格式:BOF(工作區(qū)號|)功能:測試指定工作區(qū)中表文件的記錄指針是否指向文件首,即第一條記錄之前。如果是,則返回邏輯真.T.;否則返回邏輯假.F.。【例2.45】USE D:NEW BOOK學(xué)生情況表 ?BOF(),RECNO() SKIP -1 ?BOF(),RECNO() 100 5.表文件尾測試函數(shù)格式:EOF(工作區(qū)號|)功能:測試指定工作區(qū)中表文件的記錄指針是否指向文件尾,即最后一條記錄之后。如果是,則返回邏輯真.T.;否則返回邏輯假.F.?!纠?.46】USE D:NE
49、W BOOK學(xué)生情況表 GO BOTTOM ?EOF() SKIP 1 ?EOF() 1016.條件測試函數(shù)格式:IIF(,)功能:測試的值,如果為.T.,返回的值;如果為.F.,返回的值?!纠?.47】X=125 Y=200 ?IIF(XY,X+100,Y-100) 1027.記錄刪除測試函數(shù)格式:DELETE(工作區(qū)號|)功能:測試指定工作區(qū)中表文件的當(dāng)前記錄是否有刪除標(biāo)記(邏輯刪除),若有,返回.T.;否則返回.F.。【例2.48】USE D:NEW BOOK學(xué)生情況表 GO 3 DELETE ?DELETE() 1038.記錄查找測試函數(shù)格式:FOUND(工作區(qū)號|)功能:測試指定工作
50、區(qū)表文件中,用LOCATE,CONTINUE,SEEK,FIND命令對表文件或索引文件的查找是否成功,若成功,返回.T.;否則返回.F.。【例2.49】USE D:NEW BOOK學(xué)生情況表 INDEX ON 性別 TAG XB SEEK 女 ?FOUND() 1049.工作區(qū)號測試函數(shù)格式:SELETE(0|1|)功能:測試工作區(qū)的編號。說明:不帶任何選項或選O表示返回當(dāng)前工作區(qū)的編號;選1表示返回未使用工作區(qū)的最大編號;指定表示返回表文件所在的工作區(qū)的編號?!纠?.50】SELETE 1 USE D:NEW BOOK學(xué)生情況表 SELETE 2 USE D:NEW BOOK學(xué)生成績表 ?S
51、ELETE() ?SELETE(1) 10510.文件存在測試函數(shù)格式:FILE()功能:測試指定的文件是否存在。若存在,則返回邏輯真值.T.,否則返回邏輯假值.F.。說明:文件名必須包括擴展名,并且文件名一定要用字符定界符括起來,如果不用字符定界符括起來,系統(tǒng)將認(rèn)為是變量名。【例2.51】?FIELE(D:NEW BOOK學(xué)生情況表.DBF) 1062-5-6 其它函數(shù)1.顯示信息對話框函數(shù)格式:MESSAGEBOX(,)功能:顯示一個信息對話框,并且通過對話框上提供的選擇進(jìn)行操作。函數(shù)的返回值為數(shù)字。說明:用于指定對話框中要顯示的信息。用于指定對話框中的標(biāo)題文字。如該項省略,對話框標(biāo)題將顯
52、示為“Microsoft Visual FoxPro”。用于指定對話框的類型參數(shù),對話框類型參數(shù)可控制顯示在對話框上的按鈕和圖標(biāo)的種類及數(shù)目,以及焦點選項的按鈕。 107下表給出了對話框類型參數(shù)及含義。 對話框類型值對話框按鈕對話框類型值圖 標(biāo)對話框類型值默認(rèn)按鈕0“確定”按鈕0無圖標(biāo)0第1個按鈕1“確定”和“取消”按鈕16“終止”圖標(biāo)256第2個按鈕2“終止”、“重試”和“忽略”按鈕32“問號”圖標(biāo)512第3個按鈕3“是”、“否”和“取消”按鈕48“驚嘆號”圖標(biāo)4“是”和“否”按鈕64“信息”圖標(biāo)5“重試”和“取消”按鈕108【例2.52】?MESSAGEBOX(確實要刪除嗎?,3+16+2
53、56, 提示刪除對話框) 從對話框中選擇一按鈕,函數(shù)將返回一個數(shù)字。在圖2-4中,選擇“是”按鈕,則返回數(shù)字6。返回值與按鈕的關(guān)系如下表所示。返回值含義返回值含義1選擇“確定”按鈕5選擇“忽略”按鈕2選擇“取消”按鈕6選擇“是”按鈕3選擇“終止”按鈕7選擇“否”按鈕4選擇“重試”按鈕1092.顯示系統(tǒng)信息函數(shù)格式:SYS()功能:顯示一個反映當(dāng)前系統(tǒng)狀態(tài)信息的字符串。說明:的值應(yīng)根據(jù)VFP提供的值輸入(具體內(nèi)容請查閱“幫助”),不能隨意給定?!纠?.53】 ?sys(5) ?sys(2003) 110第3章 表的創(chuàng)建與使用 3-1 創(chuàng)建數(shù)據(jù)表 343-2 表中記錄的輸入 46 3-3 數(shù)據(jù)記錄
54、的顯示和修改 51 3-4 設(shè)置數(shù)據(jù)字典信息 57 1113-1 創(chuàng)建數(shù)據(jù)表3-1-1 定義表的結(jié)構(gòu) 34 3-1-2 創(chuàng)建表 37 3-1-3 打開數(shù)據(jù)表 423-1-4 修改表的結(jié)構(gòu) 431123-1-1 定義表的結(jié)構(gòu) 在VFP中,二維表中的每一列稱為一個字段(Field),除標(biāo)題行外的每一行稱為一條記錄(Record)。每一列的標(biāo)題叫字段名,列標(biāo)題下的數(shù)據(jù)叫字段值,所有的字段名構(gòu)成二維表的標(biāo)題行(表頭),標(biāo)題行就叫數(shù)據(jù)表的結(jié)構(gòu)(Structure)。一個數(shù)據(jù)表就是由表結(jié)構(gòu)和記錄兩部份組成。 一個數(shù)據(jù)表在形式上就是一個二維表,如表下所示;113 1字段名 字段名用來標(biāo)識表中的字段,它必須以
55、字母或漢字開頭,由字母、漢字、數(shù)字或下劃組成,不能含空格。數(shù)據(jù)庫表的字段名最長為128字符(64個漢字),自由表的字段名最長為10個字符(5個漢字)。一個表最多可以有128個字段,且字段名不能重復(fù)。 2字段的數(shù)據(jù)類型 字段的數(shù)據(jù)類型決定了存儲在此字段中的數(shù)據(jù)的類型,由字段的數(shù)據(jù)類型決定對該字段所允許的操作。 VFP提供了13種數(shù)據(jù)類型,如下表所示:114類型代號說明字段寬度數(shù)據(jù)范圍字符型C存放任何可顯示或打印的漢字、英文文字和字符。數(shù)據(jù)一般不用于計算254字節(jié)任何字符數(shù)值型N存放由正負(fù)號、數(shù)字和小數(shù)點所組成的并且能參與數(shù)值運算的數(shù)據(jù)20位-0.9999999999E+19到0. 9999999
56、999E+20貨幣型Y存放數(shù)值型數(shù)據(jù),但小數(shù)位固定保留4位(超過4位,自動進(jìn)行4舍五入)8個字節(jié)-922337203685477.5808到922337203685477.5807浮點型F與數(shù)值型相同,但存儲格式采用浮點格式。它是為與其它軟件兼容而設(shè)置20位-0.9999999999E+19到0. 9999999999E+20日期型D存放默認(rèn)格式為mm/dd/yy(月/日/年)的日期數(shù)據(jù)。如05/08/03表示2003年5月8日8個字節(jié)01/01/0001到12/31/9999日期時間型T存放日期和時間數(shù)據(jù)。如05/08/03 10:30:00 AM表示2003年5月8日上午10點30分8個字
57、節(jié)01/01/0001 00:00:00 AM到 12/31/9999 11:59:59 PM整型I存放不帶小數(shù)的數(shù)值型數(shù)據(jù)4個字節(jié)-2147483647到2147483646雙精度型B存放精度要求極高的數(shù)值型數(shù)據(jù)8個字節(jié)4.94065645841247E-324到1.797693413486232E308邏輯型L存放的數(shù)據(jù)是真(.T. )或假(.F.)的邏輯值。用在數(shù)據(jù)中只包含兩個可能的值的字段1個字節(jié) .T. 或 .F.備注型M存放文字超過254個字符的字符型數(shù)據(jù),但數(shù)據(jù)保存在與表的主名相同的備注文件(擴展名為.FPT)中。如簡歷、摘要字段。該文件隨表的打開而自動打開,但被破壞或刪除則表就
58、不能打開4個字節(jié)(用于存儲指向備注文件該字段內(nèi)容的一個指針)只受存儲空間的限制通用型G存放圖形、電子表格、文檔、聲音等OLE(目標(biāo)鏈接和嵌入)對象,數(shù)據(jù)保存在與表的主名相同的備注文件(擴展名為.FPT)中4個字節(jié)(用于存儲指向備注文件該字段內(nèi)容的一個指針)只受存儲空間的限制字符型(二進(jìn)制)同字符型,存放的數(shù)據(jù)不隨代碼頁的改變而變化254字節(jié)任何字符備注型(二進(jìn)制)同備注型,存放的數(shù)據(jù)不隨代碼頁的改變而變化4字節(jié)只受存儲空間的限制1153字段寬度 數(shù)據(jù)類型為C、N、F的字段的寬度必須能容納將要顯示的信息的內(nèi)容,C型字段的寬度不能大于254個字節(jié),否則必須使用M型字段。數(shù)據(jù)類型為Y、D、T、I、B
59、、L、M、G的字段的寬度由系統(tǒng)規(guī)定。4小數(shù)位數(shù) 對于N型和F型的字段,還要定義小數(shù)位數(shù)。小數(shù)位數(shù)指小數(shù)點右邊有幾位數(shù)字。字段寬度包括整數(shù)位數(shù)、小數(shù)位數(shù)、正負(fù)號和小數(shù)點,如數(shù)值-12345.67,其寬度至少設(shè)置為9位。對于整數(shù),小數(shù)位數(shù)設(shè)為0;對于純小數(shù),小數(shù)位數(shù)至少比字段寬度少1位 1165使用空值(NULL) 在創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)時,是否選定字段為NULL值,這決定該字段中的數(shù)據(jù)是否接收空值。空值不同于0,空字符串或者空白,而是一個不確定的值。若設(shè)定某字段可以接收NULL值,則此字段允許值明確之后再寫入數(shù)據(jù)。字段字段名類型寬度小數(shù)位數(shù)1學(xué)號字符型(C)52姓名字符型(C)83性別字符型(C)24
60、出生日期日期型(D)85團(tuán)員否邏輯型(L)16籍貫字符型(C)67民族字符型(C)108照片通用型(G)49備注備注型(M)4學(xué)生情況表的結(jié)構(gòu)1173-1-2 創(chuàng)建表 方法一:用表設(shè)計器建立數(shù)據(jù)表方法二:使用命令方式建立數(shù)據(jù)表 方法三:用項目管理器創(chuàng)建數(shù)據(jù)表118方法一: 用表設(shè)計器建立數(shù)據(jù)表【例3.1】創(chuàng)建一個名為“學(xué)生情況表”的自由表,表的結(jié)構(gòu)如表3-3所示 。自由表設(shè)計器對話框 119說明:如果創(chuàng)建的是數(shù)據(jù)庫表,則可在表設(shè)計器中設(shè)置數(shù)據(jù)字典信息。 數(shù)據(jù)庫表設(shè)計器對話框 120 在“字段”標(biāo)簽的字段名、類型、寬度、小數(shù)位數(shù)等列分別輸入表結(jié)構(gòu)的內(nèi)容,然后單擊“確定”按鈕就可完成表結(jié)構(gòu)的創(chuàng)建,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年房地產(chǎn)市場調(diào)控中的利益關(guān)系
- 2026浙江寧波市余姚市人民醫(yī)院醫(yī)共體第一次招聘編外人員4人考試參考題庫及答案解析
- 2025年樺川縣事業(yè)編考試試題及答案
- 2025年臨沂醫(yī)療事業(yè)編考試題目及答案
- 2025年安國事業(yè)編考試試題真題及答案
- 2025年河北高校教師崗筆試及答案
- 2025年貴州醫(yī)院財務(wù)人員筆試及答案
- 2026年地質(zhì)勘察中的三維地質(zhì)模型構(gòu)建
- 2025年法國格勒諾布爾筆試及答案
- 2025年事業(yè)單位設(shè)計類實操考試及答案
- UL508標(biāo)準(zhǔn)中文版-2018工控產(chǎn)品UL中文版標(biāo)準(zhǔn)
- 礦山安全生產(chǎn)標(biāo)準(zhǔn)化
- 云南省建筑工程竣工報告表
- 房屋拆除工程投標(biāo)方案(技術(shù)方案)
- GB/T 41339.4-2023海洋生態(tài)修復(fù)技術(shù)指南第4部分:海草床生態(tài)修復(fù)
- 固定動火區(qū)申請表、告知書、管理規(guī)定
- 二片罐行業(yè)現(xiàn)狀與發(fā)展趨勢分析
- LY/T 1694-2007松脂采集技術(shù)規(guī)程
- FZ/T 01137-2016紡織品熒光增白劑的測定
- 大學(xué)生職業(yè)發(fā)展與就業(yè)指導(dǎo)課程實施方案
- 金手指外觀檢驗重點標(biāo)準(zhǔn)
評論
0/150
提交評論