VisualFoxPro程序設(shè)計基礎(chǔ)教程(第二版)第1章_第1頁
VisualFoxPro程序設(shè)計基礎(chǔ)教程(第二版)第1章_第2頁
VisualFoxPro程序設(shè)計基礎(chǔ)教程(第二版)第1章_第3頁
VisualFoxPro程序設(shè)計基礎(chǔ)教程(第二版)第1章_第4頁
VisualFoxPro程序設(shè)計基礎(chǔ)教程(第二版)第1章_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

VisualFoxPro程序設(shè)計基礎(chǔ)教程(第二版))第1章第一頁,共139頁。主要參文獻(xiàn):[1]薩師煊,王珊.?dāng)?shù)據(jù)庫系統(tǒng)概論(第三版).北京:高等教育出版社,2000[2]楊冬青,唐世謂等譯.?dāng)?shù)據(jù)庫系統(tǒng)概念(原書第4版).北京:機(jī)械工業(yè)出版社,2003[3]史濟(jì)民,湯觀全.VisualFoxPro及其應(yīng)用系統(tǒng)開發(fā).北京:清華大學(xué)出版社,2000[4]楊智輝,胡曉波,周穎.MicrosoftVisualFoxPro8.0標(biāo)準(zhǔn)教程.北京:海洋出版社,2004[5]MSDNLibraryVisualStudio6.0:VisualFoxPro文檔/使用VisualFoxPro/用戶指南|程序員指南第二頁,共139頁。第1章VisualFoxPro基礎(chǔ)數(shù)據(jù)庫基礎(chǔ)VisualFoxPro簡介VisualFoxPro6.0基本概念與規(guī)則面向?qū)ο蟪绦蛟O(shè)計的概念VisualFoxPro6.0的程序設(shè)計工具小結(jié)第三頁,共139頁。1.1.1數(shù)據(jù)庫系統(tǒng)及其特點(diǎn)與發(fā)展歷史數(shù)據(jù)庫技術(shù)是在20世紀(jì)60年代末興起的一種數(shù)據(jù)管理方法,也是信息管理中的一項非常重要的新技術(shù)。由于數(shù)據(jù)庫具有數(shù)據(jù)結(jié)構(gòu)化、冗余度低、程序獨(dú)立性高和易于擴(kuò)充、易于編制應(yīng)用程序等優(yōu)點(diǎn),因此近年來得到迅速發(fā)展,被廣泛應(yīng)用于國民經(jīng)濟(jì)、文化教育、企業(yè)管理、電子商務(wù)和電子政務(wù)等各個領(lǐng)域,為計算機(jī)應(yīng)用開辟了廣闊的天地。第四頁,共139頁。1.?dāng)?shù)據(jù)、信息和數(shù)據(jù)庫數(shù)據(jù)和信息密切相關(guān),但又有區(qū)別。

數(shù)據(jù)(Data)在一般意義上被認(rèn)為是對客觀事物特征所進(jìn)行的一種抽象化、符號化表示。信息(Information)通常被認(rèn)為是有一定含義的、經(jīng)過加工(處理)的、對決策有價值的數(shù)據(jù)。數(shù)據(jù)庫(DataBase,DB)在通俗的意義上可理解為存儲數(shù)據(jù)的倉庫,它是按一定組織方式存儲的相互有關(guān)的數(shù)據(jù)的集合,這些數(shù)據(jù)不僅彼此關(guān)聯(lián),而且可動態(tài)變化。數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)的概念。它是數(shù)據(jù)庫系統(tǒng)的管理控制中心第五頁,共139頁。DBMS的功能提供數(shù)據(jù)庫定義語言(DataDefinitionLanguage,DLL),供用戶定義數(shù)據(jù)庫文件結(jié)構(gòu),建立所需的數(shù)據(jù)庫。提供數(shù)據(jù)庫操縱語言(DataManipulationLanguage,DML),實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的基本操作:檢索、插入、修改和刪除。提供核心控制程序,實(shí)現(xiàn)對數(shù)據(jù)庫運(yùn)行操作的統(tǒng)一管理,包括并發(fā)控制、存取控制(安全性檢查)、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫內(nèi)部的維護(hù)(如索引、數(shù)據(jù)字典的自動維護(hù))等。提供一組實(shí)用程序,完成數(shù)據(jù)庫的建立和維護(hù)功能,包括初始數(shù)據(jù)的載入、轉(zhuǎn)換功能,數(shù)據(jù)庫的轉(zhuǎn)儲功能,數(shù)據(jù)庫的性能監(jiān)視、分析功能,數(shù)據(jù)通信功能等。第六頁,共139頁。本書用到的數(shù)據(jù)實(shí)例P2-P3 表1-1~表1-5在關(guān)系型數(shù)據(jù)庫系統(tǒng)中,表中的一列稱為一個字段,一行稱為一條記錄,一條記錄由多個字段構(gòu)成,多條記錄的集合則構(gòu)成一個數(shù)據(jù)表文件(在VisualFoxPro中以.DBF為擴(kuò)展名)。第七頁,共139頁。本書用到的數(shù)據(jù)實(shí)例(續(xù))DZ.DBF(讀者信息表):

{dzbh(讀者編號),dzxm(讀者姓名),dzxb(讀者性別),gzdw(工作單位),jtzz(家庭住址),zlbh(種類編號),dhhm(電話號碼),dznl(讀者年齡),bz(備注)}

SJ.DBF(書籍信息表):

{sibh(書籍編號),sjmc(書籍名稱),sjzz(書籍作者),cbs(出版社),ys(頁數(shù)),jg(價格),lbbh(類別編號),bz(備注)}JY.DBF(借閱信息表):

{jybh(借閱編號),dzbh(讀者編號),sjbh(書籍編號),cjrq(出借日期),hsrq(還書日期),bz(備注)}DZZL.DBF(讀者種類表):

{zlbh(種類編號),zlmc(種類名稱),jssl(借書數(shù)量),jsqx(借書期限),bz(備注)}SJZL.DBF(書籍種類):

{lbbh(類別編號),lbmc(類別名稱),gjc(關(guān)鍵詞),bz(備注)}

第八頁,共139頁。2.?dāng)?shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS):以數(shù)據(jù)庫應(yīng)用為基礎(chǔ)的計算機(jī)系統(tǒng)(1)計算機(jī)硬件(2)數(shù)據(jù)庫(3)數(shù)據(jù)庫管理系統(tǒng)(4)相關(guān)軟件(5)人員管理員(DataBaseAdministrator,DBA)應(yīng)用程序員用戶第九頁,共139頁。3.?dāng)?shù)據(jù)庫系統(tǒng)的特點(diǎn)(1)面向全組織的復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(2)數(shù)據(jù)冗余度小,易擴(kuò)充(3)具有較高的數(shù)據(jù)和程序的獨(dú)立性(4)統(tǒng)一的數(shù)據(jù)控制功能

1)

安全性控制

2)完整性控制

3)并發(fā)控制第十頁,共139頁。應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E應(yīng)用F用戶模式1用戶模式2用戶模式3邏輯模式存儲模式數(shù)據(jù)庫映象一:用戶模式/邏輯模式映象二:邏輯模式/存儲模式圖1-2數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)第十一頁,共139頁。數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)(續(xù))三級模式用戶模式(外模式):數(shù)據(jù)庫用戶的數(shù)據(jù)視圖邏輯模式(模式):對數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述存儲模式(內(nèi)模式):對數(shù)據(jù)庫在物理存儲器上具體實(shí)現(xiàn)的描述兩次轉(zhuǎn)換用戶模式/邏輯模式映像:實(shí)現(xiàn)數(shù)據(jù)的邏輯獨(dú)立性邏輯模式/存儲模式映像:實(shí)現(xiàn)數(shù)據(jù)的物理獨(dú)立性第十二頁,共139頁。數(shù)據(jù)管理技術(shù)隨著計算機(jī)軟件和硬件的發(fā)展而不斷發(fā)展,大致經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段,而在數(shù)據(jù)庫系統(tǒng)階段又經(jīng)歷了萌芽階段、蓬勃階段和成熟階段,如圖1-3所示。圖1-3數(shù)據(jù)管理技術(shù)發(fā)展示意圖文件系統(tǒng)階段人工管理階段數(shù)據(jù)庫系統(tǒng)階段萌芽階段蓬勃階段50年代中期60年代中期70年代80年代成熟階段4.?dāng)?shù)據(jù)庫技術(shù)的發(fā)展第十三頁,共139頁。文件系統(tǒng)文件系統(tǒng)數(shù)據(jù)管理技術(shù)是數(shù)據(jù)庫系統(tǒng)的前身,也是數(shù)據(jù)庫系統(tǒng)發(fā)展階段的基礎(chǔ),文件系統(tǒng)本身有一些比較突出的缺陷:

冗余度大。文件系統(tǒng)中的用戶各自建立自己的文件,數(shù)據(jù)不能共享,造成大量重復(fù),不僅浪費(fèi)存儲空間,還易產(chǎn)生數(shù)據(jù)的不一致。

缺乏數(shù)據(jù)獨(dú)立性。數(shù)據(jù)與程序相互依賴,要改變數(shù)據(jù)結(jié)構(gòu)就得修改程序,耗費(fèi)時力。

數(shù)據(jù)無集中管理。各個文件沒有統(tǒng)一管理機(jī)構(gòu),無法相互聯(lián)系,各自為政,其安全性、完整性無法保證。

第十四頁,共139頁。數(shù)據(jù)庫系統(tǒng)

以上問題都造成了文件系統(tǒng)管理的低效率、高成本,同時也促進(jìn)了數(shù)據(jù)庫系統(tǒng)的產(chǎn)生和發(fā)展。數(shù)據(jù)庫系統(tǒng)克服了文件管理系統(tǒng)的種種弊端,提供給用戶一個更為優(yōu)秀的、合理的數(shù)據(jù)管理系統(tǒng)。

自20世紀(jì)60年代后期數(shù)據(jù)庫誕生以來,數(shù)據(jù)庫技術(shù)迅速發(fā)展,大量商品化的數(shù)據(jù)庫系統(tǒng)廣泛應(yīng)用于各種領(lǐng)域,理論更加完善。以關(guān)系型數(shù)據(jù)庫產(chǎn)品發(fā)展最快,從大型機(jī)到微機(jī),從Unix到Windows,推出了許多成熟的關(guān)系數(shù)據(jù)庫管理軟件,例如,Oracle、Informix、SYBASE、dBASE、FoxBASE、FoxPro、VisualFoxPro等。隨著計算機(jī)網(wǎng)絡(luò)技術(shù)和多媒體技術(shù)的發(fā)展,數(shù)據(jù)庫系統(tǒng)也將這些技術(shù)吸收到其中,并提出相應(yīng)的商業(yè)化產(chǎn)品。

第十五頁,共139頁。1.1數(shù)據(jù)庫基礎(chǔ)數(shù)據(jù)庫系統(tǒng)及其特點(diǎn)與發(fā)展歷史E-R方法與數(shù)據(jù)模型數(shù)據(jù)庫保護(hù)關(guān)系代數(shù)第十六頁,共139頁。1.1.2E-R方法與數(shù)據(jù)模型三個世界概念模型數(shù)據(jù)模型關(guān)系模型的相關(guān)概念

第十七頁,共139頁。1.三個世界

數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中用于提供信息表示和操作手段的形式構(gòu)架。數(shù)據(jù)庫中用概念模型實(shí)現(xiàn)了對現(xiàn)實(shí)世界的抽象,進(jìn)而轉(zhuǎn)換成機(jī)器中存取的數(shù)據(jù),如圖1-4所示。

現(xiàn)實(shí)世界:實(shí)體信息世界:概念模型機(jī)器世界:數(shù)據(jù)模型抽象轉(zhuǎn)換圖1-4從現(xiàn)實(shí)世界到機(jī)器世界第十八頁,共139頁。2.概念模型

數(shù)據(jù)模型是借助概念模型(或信息模型)轉(zhuǎn)化而來的概念模型是數(shù)據(jù)庫設(shè)計人員在認(rèn)識現(xiàn)實(shí)世界中的實(shí)體及實(shí)體間聯(lián)系后進(jìn)行一種抽象,并用一種方法描述出來表示概念模型的方法中最常用的是實(shí)體-聯(lián)系方法(Entity-RelationshipApproach),簡稱E-R方法。

第十九頁,共139頁。(1)概念模型中涉及的一些概念

實(shí)體:客觀存在并且可相互區(qū)分的事物叫實(shí)體。

屬性:實(shí)體所具有的某一特征。

實(shí)體集:同型實(shí)體的集合。

聯(lián)系:主要指實(shí)體與實(shí)體之間的聯(lián)系,通常用語義描述。實(shí)體間的聯(lián)系可分為三類:一對一聯(lián)系(1:1)一對多聯(lián)系(1:n)多對多聯(lián)系(m:n)

第二十頁,共139頁。實(shí)體間的聯(lián)系圖1-5兩個實(shí)體型之間的聯(lián)系

系系主任領(lǐng)導(dǎo)學(xué)生課程選課11系教師組成1nnm(a)(b)(c)第二十一頁,共139頁。(2)描述概念模型E-R方法的規(guī)則

用長方形表示實(shí)體,并在框內(nèi)寫上實(shí)體名。

用橢圓表示實(shí)體屬性,并用無向邊把實(shí)體與其屬性連接起來。

用菱形表示實(shí)體間的聯(lián)系,菱形框內(nèi)寫上聯(lián)系名。用無向邊把菱形分別與相關(guān)的實(shí)體相連接,在無向邊旁標(biāo)上聯(lián)系的類型(1:n、1:1、m:n)。若實(shí)體之間的聯(lián)系也具有屬性,則把屬性和菱形也用無向邊連接上。

第二十二頁,共139頁。E-R圖實(shí)例圖1-6圖書館管理系統(tǒng)E-R圖

讀者姓名編號年齡工作單位家庭住址借閱還書日期借出日期書籍書籍編號書籍名稱作者出版社mn第二十三頁,共139頁。3.?dāng)?shù)據(jù)模型

在建立了概念模型后,即可根據(jù)一定的規(guī)則將其轉(zhuǎn)化為數(shù)據(jù)模型。目前,實(shí)際數(shù)據(jù)庫系統(tǒng)中所支持的數(shù)據(jù)模型有層次模型(HierachicalModel)、網(wǎng)狀模型(NetworkModel)和關(guān)系模型(RelationalModel)三種?;诓煌臄?shù)據(jù)模型有不同的數(shù)據(jù)庫管理系統(tǒng):

層次型DBMS,如IMAGE、IMS。

網(wǎng)狀型DBMS,如DBTG。

關(guān)系型DBMS,如dBASE、FoxBASE、FoxPro、VisualFoxPro、Oracle、Informix。

第二十四頁,共139頁。4.關(guān)系模型的相關(guān)概念

關(guān)系:對應(yīng)于一張滿足一定條件的二維表,由記錄型(表頭)和記錄值二部分組成。元組:表中的一行,也可稱為一條記錄。屬性:表中的一列稱為一個屬性。給每列取的名字,稱為屬性名或字段名。域:屬性的取值范圍。碼:能惟一標(biāo)識一個元組的屬性或?qū)傩越M,也稱為關(guān)鍵字。例如,讀者關(guān)系的碼是讀者編號(dzbh),借閱關(guān)系的碼是“讀者編號(dzbh)與書籍編號(sjbh)”屬性組。

第二十五頁,共139頁。4.關(guān)系模型的相關(guān)概念(續(xù))主碼:有時能惟一標(biāo)識一元組的屬性組不止一個,即碼不止一個,這時必須指定其中的一個碼作為主碼,組成主碼的屬性被稱為主屬性。

外部碼:非本關(guān)系的碼,但它是其他關(guān)系的碼,這樣的屬性或?qū)傩越M集合稱為外關(guān)鍵字或外部碼。例如,借閱關(guān)系的外部碼有兩個,“讀者編號(dzbh)”是讀者關(guān)系的碼,則是它的外部碼;同樣,屬性“書籍編號(sjbh)”亦是它的外部碼。分量:元組中的一個屬性值。關(guān)系數(shù)據(jù)庫:數(shù)據(jù)庫中所有關(guān)系的集合。

第二十六頁,共139頁。4.關(guān)系模型的相關(guān)概念(續(xù))并非所有的二維表都可稱為一個關(guān)系,作為關(guān)系的二維表必須滿足如下最低條件:

每一分量必須是不可分割的數(shù)據(jù)項。

每一列(字段)需以不同的屬性名(字段名)命名。列的次序并不重要,即列的次序可以交換。行的順序也無所謂,即行的次序可以任意交換。每一列中的分量是同一類型的數(shù)據(jù),應(yīng)取自同一個域。任意兩個元組不能完全相同。

第二十七頁,共139頁。1.1.3數(shù)據(jù)庫保護(hù)數(shù)據(jù)庫保護(hù)主要涉及以下幾個方面:數(shù)據(jù)的安全性完整性并發(fā)控制數(shù)據(jù)庫恢復(fù)第二十八頁,共139頁。1.安全性數(shù)據(jù)庫的安全性(Security)是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。任何系統(tǒng)都有安全性,只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多用戶直接共享,從而使得安全性問題更為突出。確保數(shù)據(jù)庫系統(tǒng)安全可靠是整個數(shù)據(jù)庫系統(tǒng)的重要組成部分,也是衡量一個數(shù)據(jù)庫系統(tǒng)性能的重要指標(biāo)之一。第二十九頁,共139頁。1.安全性(續(xù))在數(shù)據(jù)庫系統(tǒng)中,安全性措施是層層設(shè)置的,如圖1-7所示。硬件OSDBMS應(yīng)用系統(tǒng)加鎖加密用戶鑒定文件權(quán)限網(wǎng)絡(luò)授權(quán)口令、權(quán)限檢查授權(quán)與撤權(quán)口令設(shè)置權(quán)限檢查圖1-7數(shù)據(jù)庫系統(tǒng)的安全性措施設(shè)置

第三十頁,共139頁。1.安全性(續(xù))(1)第一層:硬件級。這也是物理級的安全保密方式,為對付強(qiáng)迫透露口令、在通信線路上竊聽及盜竊物理存儲設(shè)備等行為而采取的,一般可將數(shù)據(jù)編為密碼、硬件加鎖、加強(qiáng)保衛(wèi)等措施,以識別用戶身份和保護(hù)硬件設(shè)備。(2)第二層:操作系統(tǒng)級與網(wǎng)絡(luò)級。操作系統(tǒng)與網(wǎng)絡(luò)軟件都提供了系統(tǒng)軟件級的低層保護(hù)。它包括對用戶的分組、用戶權(quán)限的分類、文件權(quán)限的設(shè)置(只讀、可讀寫、可執(zhí)行、……)及網(wǎng)絡(luò)軟件文件授權(quán)功能。第三十一頁,共139頁。1.安全性(續(xù))(3)第三層:DBMS級。DBMS提供兩層保護(hù):第一層是進(jìn)入系統(tǒng)之前的用戶標(biāo)識與鑒定,與操作系統(tǒng)及網(wǎng)絡(luò)級的用戶身份鑒定相似;第二層是進(jìn)入系統(tǒng)后的存取控制措施,保證用戶只能存取有權(quán)操縱的數(shù)據(jù)。(4)第四層:應(yīng)用系統(tǒng)級。在數(shù)據(jù)庫應(yīng)用系統(tǒng)這一級,可以根據(jù)實(shí)際用戶的分工不同、操作的重要程度不同等在應(yīng)用程序中設(shè)置口令、分配權(quán)限。這一工作主要由系統(tǒng)員分析確定,在應(yīng)用程序中實(shí)現(xiàn)。第三十二頁,共139頁。2.完整性數(shù)據(jù)的完整性(Integrity)是指數(shù)據(jù)的正確性和相容性。為保證這一點(diǎn),要求DBMS必須提供相應(yīng)的完整性約束條件的檢查功能,以防止錯誤的或不合約束條件的數(shù)據(jù)進(jìn)出數(shù)據(jù)庫。保證完整性的約束條件很多,主要有:對數(shù)據(jù)值的約束對數(shù)據(jù)間聯(lián)系的約束第三十三頁,共139頁。2.完整性(續(xù))對數(shù)據(jù)值的約束:例如,讀者年齡只能是15~60,性別只能是男或女,讀者編號只能是8位數(shù)字等。對數(shù)據(jù)間聯(lián)系的約束:主要有實(shí)體完整性參照完整性用戶定義的完整性第三十四頁,共139頁。2.完整性(續(xù))-對數(shù)據(jù)間聯(lián)系的約束實(shí)體完整性是指碼的值在關(guān)系中必須非空(notnull)且必須是惟一的。參照完整性是指一個關(guān)系中外來碼的碼值必須是相應(yīng)數(shù)據(jù)庫中其他關(guān)系的主碼值之一,或為空(null)。用戶定義完整性是針對某一具體數(shù)據(jù)庫的,由應(yīng)用環(huán)境決定。第三十五頁,共139頁。3.并發(fā)控制數(shù)據(jù)庫的最大特點(diǎn)就是共享,可以由多個用戶在同一時刻存取數(shù)據(jù),從而提高資源的利用率。然而多個用戶在同一時刻存取同一數(shù)據(jù),若不加以控制,就很容易破壞數(shù)據(jù)的完整性與一致性。并發(fā)控制中有一概念稱事(Transaction),它是并發(fā)控制的基本單位與控制對象。事務(wù)是一操作序列,這些操作要么都做,要么都不做。本例的并發(fā)操作可描述如表1-6(a),1-6(b)所示。第三十六頁,共139頁。表1-6事務(wù)T1和T2的并發(fā)操作

(a)未加鎖,修改丟失(A=9)

(b)加鎖,正確(A=7)

T1T2T1T2讀A=10

XlockA

讀A=10獲得

A←A-2

讀A=10

A←A-1

XlockA寫回A=8

A←A-2等待

寫回A=9寫回A=8等待

Commit等待

UnlockA等待

獲得XlockA

讀A=8

A←A-1

寫回A=7

Commit

UnlockA第三十七頁,共139頁。4.?dāng)?shù)據(jù)庫恢復(fù)概念:DBMS一般要具有從錯誤狀態(tài)恢復(fù)到已知的正確狀態(tài)的功能。這就是數(shù)據(jù)庫恢復(fù)。方式:目前,數(shù)據(jù)庫恢復(fù)采用的基本方法有如下幾種:轉(zhuǎn)儲使用日志文件增加硬件機(jī)制

第三十八頁,共139頁。1.1.4關(guān)系代數(shù)關(guān)系代數(shù)是關(guān)系數(shù)據(jù)庫的數(shù)學(xué)基礎(chǔ),其操作對象和操作結(jié)果都是元組的集合。它所提供的專門的關(guān)系運(yùn)算有選擇投影連接等。第三十九頁,共139頁。1.選擇(Selection)概念:所謂選擇是指從關(guān)系中選擇出滿足給定條件的元組。例:從“圖書館管理系統(tǒng)”數(shù)據(jù)表dz.dbf中選擇出家住北京的讀者。SQL語言可表達(dá)如下:SELECT*FROMdzWHEREjtzz="北京";用LIST命令可以表示成:USEdzLISTFORjtzz="北京“其中,SELECT語句中的WHERE子句和LIST命令中的FOR子句表達(dá)了選擇條件。第四十頁,共139頁。2.投影(Projection)概念:所謂的投影是指從一個關(guān)系中選取某些屬性列組成新的關(guān)系,最后從得到的結(jié)果中刪除重復(fù)的元組。例:從jy.dbf中投影出借有圖書的讀者編號。用VFP的SQL語言可表達(dá)為:SELECTdzbhFROMjy用LIST命令可以表示成:USEjyLISTFIELDSdzbh其中,SELECT語句中的SELECT子句和LIST命令中的FIELDS子句表達(dá)了投影條件。第四十一頁,共139頁。3.連接(Join)(1)笛卡爾積(CartsianProduct)。給定關(guān)系R、S,它們的笛卡爾積是由所有屬于R的元組與屬于S的元組連接而成的新元組組成,用R×S表示。例:設(shè)關(guān)系R與S如圖1-8所示,它們的笛卡爾積結(jié)果也如圖1-8所示。第四十二頁,共139頁。

R

R×SABCa1b13a2b35a3b47

SBEb17b22AR.BCS.BEa1b13b17a1b13b22a2b35b17a2b35b22a3b47b17a2b47b12圖1-8關(guān)系R、S及其笛卡爾積3.連接(Join)(續(xù))第四十三頁,共139頁。3.連接(Join)(續(xù))(2)連接:連接運(yùn)算是從兩個關(guān)系的笛卡爾積中,選取屬性間滿足一定條件的元組。自然連接:自然連接是連接的一個特例,它是指兩個關(guān)系按主碼與外部碼分量值一樣的條件將元組連接在一起,并去掉重復(fù)列而得到的關(guān)系。例:將圖1-8中的關(guān)系R與S中的元組連接在一起,要求按關(guān)系R的C字段分量值小于關(guān)系S的E字段的分量值的條件進(jìn)行。其結(jié)果如圖1-9(a)所示。R與S的自然連接結(jié)果如圖1-9(b)所示。第四十四頁,共139頁。ABCBEa1b13b17a2b35b17ABCEa1b137圖1-9關(guān)系R、S的連接和自然連接(a)(b)3.連接(Join)(續(xù))第四十五頁,共139頁。1.2VisualFoxPro簡介VisualFoxPro是Xbase數(shù)據(jù)庫系列軟件中,繼dBASE、FoxBASE、FoxPro之后的又一微機(jī)關(guān)系數(shù)據(jù)庫管理系統(tǒng)新產(chǎn)品,它與dBASE、FoxBASE、FoxPro等兼容。VisualFoxPro的版本VisualFoxPro的特性概述VisualFoxPro的菜單系統(tǒng)第四十六頁,共139頁。1.2.1VisualFoxPro的版本1995年以后,微軟公司陸續(xù)發(fā)布了三個版本的VisualFoxPro:VisualFoxPro3.0、VisualFoxPro5.0和VisualFoxPro6.0及其中文版。2002年微軟公司推出了VisualStudio.NET7.0,VisualFoxPro7.0β版(測試版)是其中的成員但其后發(fā)布的VisualStudio.NET7.0正式版不包含VisualFoxPro7.0。2003年2月1日微軟公司推出VisualFoxPro8.0,近期又推出VisualFoxPro9.0。第四十七頁,共139頁。1.2.1VisualFoxPro的版本(續(xù))與FoxPro2.x比較,VisualFoxPro3.0在以下幾個方面的特性有所增強(qiáng):快速創(chuàng)建應(yīng)用程序的能力。更強(qiáng)大的開發(fā)能力。開發(fā)客戶機(jī)/服務(wù)器解決方案的能力。與其他Microsoft應(yīng)用程序相互作用的能力。

第四十八頁,共139頁。1.2.1VisualFoxPro的版本(續(xù))與VisualFoxPro3.0比較,VisualFoxPro5.0增加或加強(qiáng)了以下功能:增強(qiáng)了項目管理器和數(shù)據(jù)庫管理。改善了調(diào)試工具。更加簡單的表設(shè)計方法和擴(kuò)展的數(shù)據(jù)字典。增強(qiáng)的查詢和視圖設(shè)計。增加了表單功能,使之更易于設(shè)計。有更多和更好的向?qū)А8o密的OLE和ActiveX集成。

第四十九頁,共139頁。1.2.1VisualFoxPro的版本(續(xù))VisualFoxPro6.0與前兩個版本比較,增加或增強(qiáng)了以下功能:(1)Access和Assign方法程序(2)ActiveDocument。(3)組件管理庫。(4)代碼范圍分析器應(yīng)用程序。(5)對GIF和JPEG圖形的支持。(6)HTML幫助。第五十頁,共139頁。1.2.1VisualFoxPro的版本(續(xù))(7)新的和改進(jìn)了的語言元素。(8)OLE拖放。(9)項目管理器掛接程序。(10)自動服務(wù)程序(AutomationServer)的改進(jìn)。(11)新增和改進(jìn)了的向?qū)Ш蜕善鳌#?2)對2000年日期的支持。第五十一頁,共139頁。1.2.1VisualFoxPro的版本(續(xù))VisualFoxPro8.0與VisualFoxPro以前的版本完全兼容,并且與VisualStudio.NET2003兼容。此外還有如下新特點(diǎn):(1)全面的數(shù)據(jù)訪問。(2)結(jié)構(gòu)化錯誤處理。(3)View設(shè)計器。(4)支持自動增量。(5)WindowsXP題目支持。第五十二頁,共139頁。(6)高級控件。(7)GDI+圖像支持。(8)事件處理。(9)XML數(shù)據(jù)導(dǎo)入和導(dǎo)出。(10)XMLWebServices。(11)OLEDBProvider(12)SQLServer2000桌面引擎(MSDE)。(13)開發(fā)工具。(14)增強(qiáng)的基本類。(15)新增功能。

第五十三頁,共139頁。1.2.2VisualFoxPro的特性概述VisualFoxPro在性能、系統(tǒng)資源利用和設(shè)計環(huán)境等方面的強(qiáng)大功能,可以更好地幫助用戶完成應(yīng)用程序或數(shù)據(jù)庫系統(tǒng)開發(fā)。

1.增強(qiáng)的項目及數(shù)據(jù)管理2.具有真正意義的數(shù)據(jù)庫3.簡便的查詢與視圖設(shè)計工具4.實(shí)用的報表及標(biāo)簽設(shè)計5.緊密結(jié)合數(shù)據(jù)的表單6.完整的向?qū)C(jī)制7.完整的的菜單系統(tǒng)第五十四頁,共139頁。1.2.2VisualFoxPro的特性概述(續(xù))8.面向?qū)ο蟮某绦蛟O(shè)計9.更安全、有效的網(wǎng)絡(luò)數(shù)據(jù)共享10.快速建立應(yīng)用程序11.高效的調(diào)試器12.快捷方便的組件管理庫13.導(dǎo)入和導(dǎo)出數(shù)據(jù)14.高度的數(shù)據(jù)集成能力15.VisualFoxPro功能的擴(kuò)展第五十五頁,共139頁。1.2.3VisualFoxPro的菜單系統(tǒng)在WindowsXP/2000桌面上建立了VFP6.0的快捷方式后,雙擊它即可啟動VFP6.0,屏幕上將顯示它的主窗口及主菜單等。菜單是使用VFP時最常用的工具。VFP的菜單在不同的狀態(tài)下會有一些變化,本小節(jié)對VFP的基本菜單系統(tǒng)作一簡介,列出中英文的菜單標(biāo)題,以適應(yīng)中英文VFP6.0版本。

1.文件(File)菜單項,如表1-9所示。2.編輯(Edit)菜單項,如表1-10所示。3.顯示(View)菜單項,如表1-11所示。4.格式(Format)菜單項,如表1-12中所示。第五十六頁,共139頁。5.工具(Tools)菜單項,如表1-13所示。6.程序(Program)菜單項,如表1-14所示。7.窗口(Window)菜單項,如表1-15所示。8.幫助(Help)菜單項,如表1-16所示。1.2.3VisualFoxPro的菜單系(續(xù))第五十七頁,共139頁。1.3VisualFoxPro6.0的基本概念與規(guī)則VisualFoxPro的項目、文件、數(shù)據(jù)庫、表、視圖VisualFoxPro的命令結(jié)構(gòu)和鍵盤宏程序執(zhí)行方式VisualFoxPro的常量、變量、數(shù)組VisualFoxPro的表達(dá)式與函數(shù)VisualFoxPro的文件類型第五十八頁,共139頁。1.3.1VFP的項目、文件、數(shù)據(jù)庫、表、視圖1.項目及項目管理器項目:是指文件、數(shù)據(jù)、文檔和VisualFoxPro6.0對象的集合,被保存在以.pjx為擴(kuò)展名的文件中。項目用項目管理器進(jìn)行維護(hù)項目管理器是VisualFoxPro中處理數(shù)據(jù)和對象的主要組織工具,項目管理器是VisualFoxPro的控制中心。

第五十九頁,共139頁。1.項目及項目管理器(續(xù))項目管理器可以借助命令或菜單方式建立。本章應(yīng)用實(shí)例“圖書館管理信息系統(tǒng)”中建立的項目管理器,如圖1-10所示。

第六十頁,共139頁。2.表、視圖與數(shù)據(jù)庫(1)表(table)表是VFP處理數(shù)據(jù)和建立關(guān)系型數(shù)據(jù)庫及應(yīng)用程序的基本單元。在VFP中,表文件的擴(kuò)展名為.dbf,它由結(jié)構(gòu)和記錄(數(shù)據(jù))構(gòu)成。兩種類型的表:數(shù)據(jù)庫表和自由表。表中各字段的結(jié)構(gòu)參數(shù):字段名字段類型字段寬度和小數(shù)位數(shù)是否允許為空顯示標(biāo)題等第六十一頁,共139頁。(1)表(table)(續(xù))1)字段名表中每一個字段都應(yīng)有一個名稱,VFP規(guī)定字段名必須以字母或漢字開頭,后跟字母、漢字或下劃線,并且長度不能超過128個字符。建議盡量簡明。例如:sjmc字段名代表了“書籍名稱”,至于正式標(biāo)題可以在定義表結(jié)構(gòu)的“標(biāo)題”參數(shù)中說明。

第六十二頁,共139頁。(1)表(table)(續(xù))2)字段類型。VFP提供了13種字段類型,用于存放不同類型的數(shù)據(jù)。

字符型(Character):通常用于存放文本數(shù)據(jù),文本數(shù)據(jù)可以是漢字、字母、數(shù)字、空格、符號及標(biāo)點(diǎn)符號。字符型字段的最大寬度為254。貨幣型(Currency):一種特殊的數(shù)據(jù)類型,用以存儲貨幣值。數(shù)據(jù)形式為“$數(shù)值”,例如,$922.00。其取值范圍為922333203685477.5807~922337203685477.5807。

第六十三頁,共139頁。(1)表(table)(續(xù))數(shù)值型(Numeric):用來存放數(shù)值數(shù)據(jù)。它由數(shù)字0~9、正負(fù)符號、小數(shù)點(diǎn)等組成。數(shù)值型字段的取值范圍為:-0.9999999999E+19~0.9999999999E+20。浮點(diǎn)型(Float):在功能上等價于數(shù)值型字段。邏輯型(Logical):用于存放邏輯數(shù)據(jù)“真”(.T.,.t.或.Y.,.y.)和“假”(.F.,.f.或.N.,.n.)。日期型(Date):用于存放包含有年、月、日的日期數(shù)據(jù)。格式為:{^yyyy-mm-dd}。例如,{^2000-1-27}表示2000年1月27日。

第六十四頁,共139頁。(1)表(table)(續(xù))日期時間型(Datetime):用于存放包含有年、月、日、時、分、秒的日期和時間數(shù)據(jù)。雙精度型(Double):用于存儲精度要求更高的、位數(shù)固定的數(shù)值。備注型(Memo):類似“簡歷”這種類型的字段雖然由文字組成,但常常超過254個字符,而且每條記錄在此字段的分量長短相差很大。為了存放這類數(shù)據(jù),VisualFoxPro提供了備注型。一個字段被定義為備注型后,總是以memo顯示在表中,占定長4個字節(jié)。事實(shí)上它僅是一個指針,真正內(nèi)容存儲在與表文件名相同的.fpt文件中,而每一個指針指向了該記錄的備注字段在.fpt中的位置。第六十五頁,共139頁。(1)表(table)(續(xù))通用型(General):用于存儲OLE對象數(shù)據(jù)。OLE對象包括電子表格、字處理文檔、圖形、圖像或其他多媒體對象。與備注型字段一樣,在表中也是僅存儲一個指針,實(shí)際內(nèi)容也存儲在.fpt文件中。一個字段若被定義為通用型,其下的分量總是以gen顯示。整型(Integer):用于存儲整數(shù)數(shù)據(jù)。取值范圍:-2147438646~2147438646。二進(jìn)制字符型(CharacterBinary):字符型二進(jìn)制用于存放不需要系統(tǒng)代碼頁維護(hù)的字符數(shù)據(jù)。其他特性同字符型字段。二進(jìn)制備注型(MemoBinary):二進(jìn)制備注型用于存儲不需要系統(tǒng)代碼維護(hù)的備注字段數(shù)據(jù)。其他特性同備注型字段。

第六十六頁,共139頁。(1)表(table)(續(xù))3)字段寬度字段寬度表明該字段允許存放的數(shù)據(jù)的長度,以字節(jié)數(shù)或位數(shù)表示。用戶在定義表結(jié)構(gòu)時,應(yīng)根據(jù)存儲數(shù)據(jù)的具體情況設(shè)置字符型、數(shù)值型、浮點(diǎn)型等字段的寬度,若有小數(shù)部分,則小數(shù)點(diǎn)也應(yīng)占一位。其他類型字段的寬度均由VFP統(tǒng)一規(guī)定如下:貨幣型:8字節(jié)

日期型、日期時間型:8字節(jié)雙精度型字段:8字節(jié)

邏輯型:1字節(jié)備注型、通用型字段:4字節(jié)

整型字段:4字節(jié)

第六十七頁,共139頁。(1)表(table)(續(xù))4)小數(shù)位數(shù)。當(dāng)字段類型為Numeric或Float時,應(yīng)在Decimal欄中設(shè)置小數(shù)的位數(shù),小數(shù)位數(shù)至少應(yīng)比該字段的寬度小2,或者采用缺省設(shè)置0。例如,在圖書館管理系統(tǒng)中,書籍信息表sj.dbf的結(jié)構(gòu)定義如圖1-11所示。

第六十八頁,共139頁。(2)視圖(View)VFP的視圖是數(shù)據(jù)庫的組成單元,是數(shù)據(jù)庫的一部分,但它不能單獨(dú)存在。視圖是一個虛表,只包含了一些條件和參數(shù)設(shè)定。按照這些條件,可從一個或多個表或視圖中過濾出(引用)符合條件的記錄,結(jié)果可當(dāng)作表來使用。當(dāng)引用表中的數(shù)據(jù)發(fā)生變化時,視圖中的顯示內(nèi)容也會發(fā)生相應(yīng)的變化。用戶可以更新視圖中的某些指定數(shù)據(jù),操作時,源表的對應(yīng)數(shù)據(jù)也將隨之更新。視圖源于本地表的稱為本地視圖。視圖源于服務(wù)器上的表文件、遠(yuǎn)程表文件時稱為遠(yuǎn)程視圖。

第六十九頁,共139頁。(2)視圖(View)(續(xù))在圖書館管理系統(tǒng)的數(shù)據(jù)庫中,包含有一個男讀者的視圖(ndz)—本地視圖(LocalView),如圖1-12所示。它的數(shù)據(jù)源是從表1-1所示的讀者信息表檢索而來的,是虛表,但可以更新視圖中的數(shù)據(jù)。

圖1-12男讀者視圖第七十頁,共139頁。(3)數(shù)據(jù)庫數(shù)據(jù)庫是VFP的主要處理對象,它可以包含一個或多個表、本地視圖、遠(yuǎn)程視圖、連接和存儲過程等內(nèi)容,并在其中包含了相關(guān)的信息。例如,表和字段的標(biāo)題、表間的1:n、m:n的關(guān)系等。數(shù)據(jù)庫文件的擴(kuò)展名為.dbc,在VFP

中常稱它為數(shù)據(jù)庫容器。例如,圖書館管理系統(tǒng)的項目管理器中,“圖書館管理”數(shù)據(jù)庫容器里包含了5張表:dz(讀者信息表)、sj(書籍信息表)、jy(借閱信息表)、dzzl(讀者種類表)、sjzl(書籍種類表);兩個本地視圖:ndz(男讀者視圖)、zgts(珍貴圖書視圖),如圖1-10所示。

數(shù)據(jù)庫和表一樣,都可以放在一個項目中。第七十一頁,共139頁。1.3.2VisualFoxPro的命令結(jié)構(gòu)和鍵盤宏VFP支持面向?qū)ο蟮某绦蛟O(shè)計,同時也支持面向過程的程序設(shè)計。程序總是由命令與函數(shù)及VFP可以理解的其他操作組成,因而了解VFP的命令并且熟記一些常用命令顯得很重要。本小節(jié)將介紹VFP的命令結(jié)構(gòu),一些常用的命令及其功能可參閱VFP

的幫助。在聯(lián)機(jī)幫助中有VFP6.0的所有命令格式、功能及一些示例。

第七十二頁,共139頁。1.命令格式<命令動詞>[范圍][FIELDS<字段表達(dá)式清單>][FOR/WHILE<條件>]VFP的命令一般總是由一個命令動詞開頭,后隨若干功能子句及參數(shù),用來說明操作對象、操作結(jié)果和操作條件等。第七十三頁,共139頁。2.VisualFoxPro命令格式說明(1)書寫約定[]——任選項,可有,可缺省。<>——必選項,必須有;當(dāng)<>套在[]里時,表示選中有效。/——“或者”的意思。實(shí)際使用時,以上約定符號均不應(yīng)包含在命令行中。

(2)命令動詞表示實(shí)施一種操作。例如:

CREATEDATABASE<庫文件名> &&創(chuàng)建一個指定庫文件名的數(shù)據(jù)庫

CREATEDATABASE"圖書館"

第七十四頁,共139頁。2.VisualFoxPro命令格式說明(續(xù))(3)[范圍]子句表示命令可以處理的記錄范圍。有4種形式供選用:ALL 表示數(shù)據(jù)表文件中的全部記錄RECORDn 表示數(shù)據(jù)庫第n條記錄NEXTn 從當(dāng)前記錄開始的n條記錄REST 從當(dāng)前記錄開始的所有記錄當(dāng)[范圍]選項缺省時,視具體命令而定,可表示ALL或當(dāng)前記錄。第七十五頁,共139頁。2.VisualFoxPro命令格式說明(續(xù))(4)[FIELDS<字段表達(dá)式清單>]子句任選項,用于選擇命令可處理的字段。缺省該選項時,命令將處理表中的所有字段,否則只處理“字段表達(dá)式清單”中指定的字段。清單中字段若不止一項,用“,”分割。第七十六頁,共139頁。2.VisualFoxPro命令格式說明(續(xù))(5)[FOR/WHILE<條件表達(dá)式>]子句任選項,表示命令將對表中所有符合條件的記錄實(shí)施操作。WHILE<條件>先順序?qū)ふ页龅谝粋€滿足條件的記錄,再繼續(xù)找出后續(xù)的也滿足條件的記錄,一旦發(fā)現(xiàn)有一個記錄不滿足條件,就不再往下尋找。一般情況下,F(xiàn)OR<條件>和WHILE<條件>不同時使用。如果同時使用,WHILE<條件>將優(yōu)先處理。(6)[參數(shù)1][,參數(shù)2]…任選項,它們的功能視具體命令而定。第七十七頁,共139頁。3.命令的書寫規(guī)則(1)為了簡化鍵盤輸入,VFP允許命令動詞和功能子句中的命令字使用縮寫的形式,只要寫出這些字的至少前4個字母。例如,DISPLAY可縮寫為DISP、DISPL、DISPLA。

(2)一條命令中含有多個功能子句時,子句的書寫次序無關(guān)緊要。例如,以下兩種寫法的功能等效:

displayallfieldsdzxmforjtzz=“北京”anddzxb=“女”

displayfieldsdzxmallforjtzz="北京"anddzxb="女"

第七十八頁,共139頁。3.命令的書寫規(guī)則(續(xù))(3)一條命令最多可以包含256個字符,一行寫不下可分行書寫,分行處須加一分號“;”,例如:DISPALLFIELDZXMFORJTZZ=“北京”;

anddzxb=“女” &&本行是上一行的續(xù)行

(4)對于所有的命令,均可以大小寫并用。各子句及參數(shù)間用至少一個空格分隔。

第七十九頁,共139頁。4.鍵盤宏

在VFP中,宏(macro)代表一系列動作和擊鍵操作的一個鍵。鍵盤宏實(shí)際上是一個擊鍵序列的記錄,使用它可以幫助用戶快速地完成某些經(jīng)常重復(fù)的工作,還可以幫助用戶建立應(yīng)用程序的自動演示程序。

一個VFP6.0的鍵盤宏中,共可存儲1024個擊鍵序列。一個鍵盤宏還可以調(diào)用另外一個宏,以產(chǎn)生更長的擊鍵序列。但在鍵盤宏中,無法記錄鼠標(biāo)的動作,對某些只能用鼠標(biāo)完成的動作,鍵盤宏就不起作用了。

鍵盤宏一般應(yīng)用于“命令”窗口??梢杂谩肮ぞ摺辈藛紊系摹昂辍泵罡暮甓x。

第八十頁,共139頁。1.3.3程序執(zhí)行方式1.向?qū)Х绞絍FP為用戶提供了很多具有實(shí)用價值的向?qū)Чぞ遅izards。向?qū)峁┝私换ナ降慕槊?,以幫助用戶快速完成一般性的任?wù)。例如,創(chuàng)建多種風(fēng)格的表單、建立查詢、建立數(shù)據(jù)庫等。其基本思想是把一些復(fù)雜的功能分解為若干簡單的步驟完成,每一步使用一個對話框,然后對這些較簡單的對話框按適當(dāng)?shù)捻樞蚪M合在一起。向?qū)Х绞绞共皇煜oxPro命令的用戶也能用VFP完成一般性的任務(wù),只要回答向?qū)岢龅挠嘘P(guān)問題,通過有限的幾個步驟就可以使用戶輕松地解決實(shí)際應(yīng)用問題。對于編程人員,也可以利用向?qū)Ы⒃?,使?yīng)用程序中各個組件都能有一個良好的開端,縮短開發(fā)時間。

第八十一頁,共139頁。1.3.3程序執(zhí)行方式(續(xù))2.菜單方式利用菜單創(chuàng)建應(yīng)用程序是開發(fā)者常用的主要方法。實(shí)際上菜單方式包括對菜單欄、快捷鍵和工具欄的組合操作。開發(fā)過程中的每一步操作常需要菜單方式的配合。例如,要建立一個項目,可以單擊“文件”菜單的“新建”命令或工具欄的“新建”按鈕。

第八十二頁,共139頁。1.3.3程序執(zhí)行方式(續(xù))3.命令方式VFP與FoxBASE、FoxPro一樣也支持交互式命令方式。用戶每發(fā)出一條命令,系統(tǒng)隨即解釋并執(zhí)行,出錯則給予相應(yīng)的提示,正確則給出相應(yīng)的執(zhí)行結(jié)果。命令行應(yīng)在命令窗口輸入。命令窗口具有一般編輯窗口的特征,可以編輯、插入、刪除、剪切和復(fù)制。并且可以對已輸入的命令重復(fù)執(zhí)行。第八十三頁,共139頁。1.3.3程序執(zhí)行方式(續(xù))4.程序執(zhí)行方式程序執(zhí)行方式是將命令行代碼組成一個程序,存入以.prg為擴(kuò)展名的命令文件中,然后通過相應(yīng)命令調(diào)用此命令文件,由系統(tǒng)自動執(zhí)行。程序中的代碼包括以命令形式出現(xiàn)的指令、函數(shù)或VFP可以理解的其他操作。VFP支持面向?qū)ο蟮某绦蛟O(shè)計,代碼不僅存在于命令文件中,而且在表單設(shè)計過程中也常常為它的某一對象的一個或多個事件編寫代碼,在菜單或報表設(shè)計時,也要編寫代碼。第八十四頁,共139頁。1.3.4VisualFoxPro的常量、變量、數(shù)組1.常量常量是指其值固定不變的數(shù)據(jù),VFP的常量類型有N、C、D、T、L、Y共6種。

(1)數(shù)值型(Numeric):簡稱N型由0~9共10個數(shù)字、小數(shù)點(diǎn)、正負(fù)號組成的實(shí)型數(shù)。其表現(xiàn)形式可以是整數(shù)(1234)、小數(shù)(0.1234)、負(fù)數(shù)(-25)、浮點(diǎn)數(shù)(123.456)、科學(xué)計數(shù)(2E-5)。

第八十五頁,共139頁。1.常量(續(xù))(2)字符型(Character):簡稱C型。它是以定界符括起來的任意字符、數(shù)字、漢字等符號。定界符可以是‘’、“”或[]。如果字符串中已有定界符中的一種符號,則定界符選用另一種。例如,“abc”、“123‘,”、[“正確”的反義]。

(3)邏輯型(Logical):簡稱L型。邏輯型常量只有兩個值:真與假。用.T.(.t.)或.Y.(.y.)代表真,用.F.(.f.)或.N.(.n.)表示假。

第八十六頁,共139頁。1.常量(續(xù))(4)日期型(Date):簡稱D型。表示日期,默認(rèn)格式為{^yyyy-mm-dd}。例如,{^2006-1-27}表示2006年1月27日。使用setdate、setcentery、setmark等命令可修改日期格式。(5)日期時間型(DateTime):簡稱T型。不僅表示日期,而且進(jìn)一步表示了時間。默認(rèn)格式為{^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]}。(6)貨幣型(Currency):簡稱Y型。表示貨幣量,默認(rèn)格式是“$數(shù)值量”,小數(shù)若超過4位,四舍五入取4位。例如,$123,$123.5678,$123.4等。

第八十七頁,共139頁。2.變量(1)VisualFoxPro變量的種類。在命令操作或程序執(zhí)行期間,其值可以改變的量稱為變量。VFP的變量有字段變量和內(nèi)存變量兩種。此外,還可以使用數(shù)組。字段變量以字段名標(biāo)識,它必須依附于表,隨著表的打開和關(guān)閉而在內(nèi)存中存儲和被釋放。字段變量是一多值變量,其值為表的當(dāng)前記錄在該字段的分量值。

第八十八頁,共139頁。2.變量(續(xù))VFP的內(nèi)存變量又可分為系統(tǒng)變量和用戶定義的內(nèi)存變量:1)系統(tǒng)變量VFP自帶的變量,由系統(tǒng)命名創(chuàng)建并維護(hù)。系統(tǒng)變量名以“_”開頭。例如,_VFP系統(tǒng)變量指向當(dāng)前運(yùn)行的VFP應(yīng)用程序?qū)ο?,通過它可以訪問對象集合(Objectscollection)。系統(tǒng)變量不能被刪除。2)用戶定義的內(nèi)存變量是一種臨時工作單元,它獨(dú)立于數(shù)據(jù)庫文件而存在,常用來保存在命令或程序執(zhí)行中臨時用到的輸入、輸出或中間數(shù)據(jù),由用戶根據(jù)需要設(shè)置或刪除。內(nèi)存變量的類型有C、N、D、T、Y、L、S(屏幕型)等幾種,由賦值給它的數(shù)據(jù)決定。第八十九頁,共139頁。2.變量(續(xù))(2)內(nèi)存變量的賦值命令命令格式:格式1:store表達(dá)式

to內(nèi)存變量名清單&&可給一批內(nèi)存變量賦相 同的值格式2:內(nèi)存變量名=表達(dá)式 &&只能給一個內(nèi)存變量賦值內(nèi)存變量名命名規(guī)則同字段變量,一般應(yīng)避免與VFP的保留字相同?!?”為賦值號,其左、右的參數(shù)不可以對調(diào)。內(nèi)存變量的類型和值由所賦數(shù)據(jù)的類型和值確定,并以最近一次所賦的值為準(zhǔn)。內(nèi)存變量名與字段變量名同名時,字段變量被優(yōu)先引用。若要引用內(nèi)存變量,可在內(nèi)存變量名前加前綴M.,以示區(qū)別。第九十頁,共139頁。2.變量(續(xù))(3)內(nèi)存變量的主要操作命令DISPLAY/LISTMEMORY&&顯示當(dāng)前內(nèi)存中的 內(nèi)存變量SAVEMEMORY… &&將當(dāng)前內(nèi)存中的內(nèi)存變 量保存到指定的內(nèi)存變量文件RESTOREFROMMEMORY…&&內(nèi)存變量文件 中的內(nèi)存變量恢復(fù)到內(nèi)存CLEARMEMORY &&清除當(dāng)前內(nèi)存中的 內(nèi)存變量,釋放存儲空間?變量名 &&顯示變量值

第九十一頁,共139頁。3.?dāng)?shù)組

數(shù)組是一組按一定順序排列的內(nèi)存變量,數(shù)組中的各個變量稱為數(shù)組元素。數(shù)組元素用數(shù)組名及該元素在數(shù)組中排列位置的下標(biāo)一起表示,下標(biāo)的個數(shù)稱為數(shù)組的維數(shù)。例如,一維數(shù)組x及其數(shù)組元素x(1),x(2),二維數(shù)組y及其數(shù)組元素y(1,2),y(2,1)等。在VisualFoxPro中,只使用一維和二維數(shù)組。數(shù)組要先定義再引用。

第九十二頁,共139頁。3.?dāng)?shù)組(續(xù))(1)數(shù)組的定義命令格式:

declare/dimension數(shù)組名1(<下標(biāo)1>[,下標(biāo)2])[,數(shù)組名2(<下標(biāo)1>[,<下標(biāo)2>])…功能:定義一維數(shù)組或二維數(shù)組(其命名規(guī)則與內(nèi)存變量相同),以及有關(guān)數(shù)組各下標(biāo)的上界值。各下標(biāo)的下界值由系統(tǒng)統(tǒng)一規(guī)定為1。下標(biāo)的個數(shù)決定了數(shù)組的維數(shù)。

第九十三頁,共139頁。3.?dāng)?shù)組(續(xù))(2)數(shù)組的賦值數(shù)組中各數(shù)組元素的取值類型可以互不相同,數(shù)組一經(jīng)定義,它的每個數(shù)組元素就有了邏輯型初值.F.。用賦值命令可為數(shù)組元素賦值,也可以為數(shù)組的各元素賦同一值。二維數(shù)組各元素以行的順序在內(nèi)存中存儲,它們也可以按排列的相對位置以一維數(shù)組元素的形式存取。例如,下例中定義的二維數(shù)組y,其數(shù)組元素y(2,2)排在第2行第2列,由于每一行是2個數(shù)組元素,則y(2,2)也可表示為一維數(shù)組元素y(4)。

第九十四頁,共139頁。1.3.5VisualFoxPro的表達(dá)式與函數(shù)1.表達(dá)式是由常量、變量、函數(shù)和運(yùn)算符組成的一個有物理意義的式子。表達(dá)式的使用拓展了VFP的應(yīng)用范圍,使操作更加靈活方便。表達(dá)式按所用到的運(yùn)算符分為字符型、數(shù)值型、關(guān)系型、邏輯型、日期型、貨幣型等類型。第九十五頁,共139頁。1.表達(dá)式(續(xù))(1)數(shù)值型表達(dá)式由數(shù)值型常量、變量、函數(shù)和算術(shù)運(yùn)算符構(gòu)成,運(yùn)算結(jié)果仍然為數(shù)值型。算術(shù)運(yùn)算符有**或^(乘方)、*(乘)、/(除)、%(取模,求余數(shù))、+(加)、-(減),其優(yōu)先級別為: **或^→*、/、%→+、-從左到右依次降低;如有括號,則優(yōu)先級最高。例:?(INT(5.6)+5)**2/10&&顯示結(jié)果為10.00

第九十六頁,共139頁。1.表達(dá)式(續(xù))(2)字符型表達(dá)式由字符型常量、變量、函數(shù)和字符運(yùn)算符組成,其運(yùn)算結(jié)果仍為字符型。字符運(yùn)算符主要有兩類:連接運(yùn)算和包含運(yùn)算。1)連接運(yùn)算有完全連接(精確連接)和不完全連接(移去尾部空格連接),分別使用運(yùn)算符“+”和“-”。

2)包含運(yùn)算本應(yīng)歸于關(guān)系運(yùn)算類,由于它是字符串之間特有的關(guān)系運(yùn)算,故將其放在字符表達(dá)式中介紹,包含運(yùn)算的結(jié)果不再是字符型而是邏輯型。格式為: 字符串1$字符串2如果字符串1包含在字符串2中,即字符串1為字符串2的子串,則表達(dá)式的值為.T.,否則為.F.。

第九十七頁,共139頁。1.表達(dá)式(續(xù))(3)貨幣型表達(dá)式其運(yùn)算對象與運(yùn)算結(jié)果都是貨幣型,運(yùn)算符和運(yùn)算規(guī)則同數(shù)值型表達(dá)式。(4)日期型表達(dá)式由日期型或數(shù)值型常量、變量、函數(shù)和日期運(yùn)算符+、-組成,其運(yùn)算結(jié)果為日期型或數(shù)值型。例如:?DATE()+15 &&顯示15天以后的日期?DOW(DATE()+15) &&顯示15天以后是星期幾?DATE()-20 &&顯示20天以前的日期T=DATE()+1 &&T為日期型Y=DATE()–1 &&Y為日期型?T–Y &&顯示結(jié)果為數(shù)值2

第九十八頁,共139頁。1.表達(dá)式(續(xù))(5)關(guān)系型表達(dá)式由關(guān)系運(yùn)算符和字符表達(dá)式、數(shù)值表達(dá)式(貨幣表達(dá)式)、日期表達(dá)式組成,運(yùn)算符左右兩側(cè)數(shù)據(jù)類型必須一致,其運(yùn)算結(jié)果為邏輯值。關(guān)系運(yùn)算符有:>、<、>=、<=、#或!、=、==(優(yōu)先級相同)字符型數(shù)據(jù)的比較是按其對應(yīng)的ASCII碼值的大小進(jìn)行的。比較時,先比較字符串第一個字符的大小,若第一個字符大,則該串大;如果第一個字符一樣,再比較第二個字符的大小,第二個字符大的,該字符串大;依此類推,直到比較出大小。兩字符串作“=”和“==”比較時,其運(yùn)算結(jié)果與SETEXACTON/OFF有關(guān)。

第九十九頁,共139頁。1.表達(dá)式(續(xù))(6)邏輯型表達(dá)式由邏輯運(yùn)算符和邏輯常量、變量、函數(shù)及關(guān)系表達(dá)式組成,結(jié)果仍是邏輯值。邏輯運(yùn)算符有NOT或!(邏輯非)、AND(邏輯與)、OR(邏輯或),優(yōu)先級按非、與、或的次序從高到低。邏輯表達(dá)式的一般形式為:<關(guān)系表達(dá)式><邏輯運(yùn)算符><關(guān)系表達(dá)式>。例如:?NOT(5>6) &&顯示結(jié)果為.T.?NOT(5>6)AND"abc">"ad"OR$100<$200 &&顯示結(jié)果為.T.第一百頁,共139頁。1.表達(dá)式(續(xù))以上介紹了VisualFoxPro的各種類型表達(dá)式各類型表達(dá)式內(nèi)有優(yōu)先級各類型表達(dá)式間也有優(yōu)先級:邏輯型最低其次是關(guān)系型的其余4種平級且最高第一百零一頁,共139頁。2.函數(shù)函數(shù)是VFP的又一重要組成部分VFP函數(shù)的格式一般為:函數(shù)名([自變量1][,自變量2]…)括號中沒有自變量的函數(shù)稱為無參函數(shù)。每個函數(shù)都有一個返回值。

VFP提供有眾多的標(biāo)準(zhǔn)函數(shù)。用戶也可以自己編寫函數(shù),稱為用戶自定義函數(shù)。在VFP中,可以采用將函數(shù)返回值賦給變量、在命令中包含函數(shù)、在命令窗口中輸出函數(shù)返回值、不存儲函數(shù)返回值、嵌套等方法調(diào)用函數(shù)。VFP函數(shù)按功能分類有數(shù)據(jù)類、數(shù)據(jù)庫類、VFP環(huán)境類、數(shù)據(jù)共享類、輸入輸出類、程序設(shè)計類。

第一百零二頁,共139頁。部分?jǐn)?shù)據(jù)類函數(shù)(1)字符函數(shù)例:STRING1="ABCD"STRING2="AB"?LEN(STRING1) &&求字符串長度,返回值為9?ALLTRIM(STRING1) &&返回值為ABCD?TYPE(‘STRING1’) &&TYPE(‘表達(dá)式’)函數(shù)計算表達(dá)式 值,并返回其數(shù)據(jù)類型,此函數(shù)還 可檢測是否為對象類型(O)?AT(STRING1,STRING2)&&返回STRING1在STRING2 中首次出現(xiàn)位置值,若

STRING1 不包含在STRING2中,返回值為0

?EMPTY('') &&判斷自變量表達(dá)式是否為空

第一百零三頁,共139頁。部分?jǐn)?shù)據(jù)類函數(shù)(續(xù))(2)數(shù)值函數(shù)

ABS(X) &&取X的絕對值EXP(X) &&求以e為底的指數(shù)函數(shù),返回值為eXSQRT(X) &&求X的平方根INT(X) &&取整函數(shù)MAX(X1,X2…) &&取X1、X2…中的最大值MIN(X1,X2…) &&取X1、X2…中的最小值ROUND(X,i) &&若i>0,則對X的小數(shù)部分第i位進(jìn)行四 舍五入例如:

?ROUND(-234.5689,2) &&返回值為-234.5700

第一百零四頁,共139頁。部分?jǐn)?shù)據(jù)類函數(shù)(續(xù))(3)日期函數(shù)?DATE() &&返回系統(tǒng)日期?YEAR(DATE()) &&返回系統(tǒng)日期的年份SETCENTURYON &&設(shè)置2k年日期格式?DATE(2005,10,5) &&返回D型值05/10/2005?DATETIME(2006,1,27,10,15) &&返回T型值01/27/200610:15:00AM

第一百零五頁,共139頁。(4)數(shù)據(jù)轉(zhuǎn)換函數(shù)1)字符與數(shù)值轉(zhuǎn)換STR(數(shù)值型的表達(dá)式[,<長度>][,<小數(shù)位數(shù)>]):把指定表達(dá)式的值轉(zhuǎn)換成字符串。VAL(字符型的表達(dá)式):此函數(shù)與STR函數(shù)互為逆函數(shù),它將指定的數(shù)字字符串轉(zhuǎn)換成數(shù)值。A1=12.2345A2=STR(A1,7,4)&&轉(zhuǎn)換為字符型后的長度是7,小數(shù)位數(shù)是412.2345 &&系統(tǒng)顯示A2的值,A2為字符型?TYPE('A2') &&系統(tǒng)顯示為C—字符型A3=VAL('123.456')?TYPE('A3') &&系統(tǒng)顯示為N—數(shù)值型?A3 &&轉(zhuǎn)換為N型時,缺省保留兩位小數(shù)

123.46

第一百零六頁,共139頁。(4)數(shù)據(jù)轉(zhuǎn)換函數(shù)(續(xù))2)日期與字符轉(zhuǎn)換DTOC(日期型的表達(dá)式)和CTOD(字符型的表達(dá)式)互為逆函數(shù),前者把指定的日期轉(zhuǎn)換成字符串,后者相反。例如:CH1='12/25/98'CH2=CTOD(CH1)?'THECHRISTMASIS'+DTOC(CH2) THECHRISTMASIS12/25/98

第一百零七頁,共139頁。(4)數(shù)據(jù)轉(zhuǎn)換函數(shù)(續(xù))3)日期與日期時間轉(zhuǎn)換DTOT(日期型表達(dá)式)和TTOD(日期時間型表達(dá)式)也是互為逆函數(shù),DTOT函數(shù)將日期型轉(zhuǎn)換為日期時間型,TTOD函數(shù)則反之。例如:?DTOT({^1999-12-19}) 12/19/9912:00:00AM?TTOD({^1993-9-1305:58AM}) 09/01/93還有兩對轉(zhuǎn)換函數(shù)ASC()與CHR()實(shí)現(xiàn)ASCII值與字符的互換MONT()與NTOM()實(shí)現(xiàn)貨幣與數(shù)值型的互換第一百零八頁,共139頁。1.3.6VisualFoxPro的文件類型VFP提供了很多文件類型,如表1-17所示。

文件類型擴(kuò)展名說明項目文件.pjx實(shí)現(xiàn)對項目中其他類型文件的組織項目備注文件.pjt包含相應(yīng)的.pjx的相關(guān)文件表文件.dbf存儲表結(jié)構(gòu)及記錄表備注文件.fpt存儲相應(yīng).dbf文件的備注與通用字段的實(shí)際內(nèi)容數(shù)據(jù)庫文件.dbc表格的集合及一個數(shù)據(jù)庫內(nèi)完整性的定義、檢驗規(guī)則等數(shù)據(jù)庫備注文件.dct存儲相應(yīng).dbc的相關(guān)信息索引、壓縮索引文件.idx只有單索引的標(biāo)準(zhǔn)索引及壓縮索引文件復(fù)合索引文件.cdx有若干索引標(biāo)識符的復(fù)合結(jié)構(gòu)索引文件程序文件.prg又稱命令文件,用于存儲用VisualFoxPro語言編寫的的程序編譯過的程序文件.fxp對.prg文件進(jìn)行編譯后產(chǎn)生的文件生成的查詢程序.qpr存儲通過查詢設(shè)計器設(shè)置的查詢條件和查詢輸出要求等第一百零九頁,共139頁。表1-17VisualFoxPro的文件類型(續(xù))編譯后的查詢程序.qpx對.qpr文件進(jìn)行編譯后產(chǎn)生的文件表單文件.scx用于存儲表單格式表單備注文件.sct存儲相應(yīng).scx文件的有關(guān)信息生成的屏幕程序.spr由表單定義而生成的程序文件,只適用于FoxPro以前的版本編譯后的屏幕程序.spx對.spr編譯生成的,只適用于FoxPro以前的版本菜單文件.mnx存儲菜單的格式菜單備注文件.mnt存儲相應(yīng)的.mnx文件的有關(guān)信息生成的菜單程序文件.mpr根據(jù)菜單格式文件而自動生成的程序文件編譯后的菜單程序.mpx對.mpr進(jìn)行編譯而產(chǎn)生的文件報表文件.frx存儲報表的定義數(shù)據(jù)第一百一十頁,共139頁。表1-17VisualFoxPro的文件類型(續(xù))報表備注文件.frt存儲相應(yīng)的.frx文件的有關(guān)信息標(biāo)簽文件.lbx存儲標(biāo)簽的定義數(shù)據(jù)標(biāo)簽備注文件.lbt存儲相應(yīng)的.lbx文件的有關(guān)信息內(nèi)存變量文件.mem存儲已定義的內(nèi)存變量,以便需要時可從中恢復(fù)它們FoxPro2.x視圖文件.vue存儲程序運(yùn)行環(huán)境的設(shè)置,以備需要時恢復(fù)所設(shè)置的環(huán)境文本文件.txt用于供VisualFoxPro與其他高級語言間進(jìn)行數(shù)據(jù)交換可視類庫.vcx用于存儲一個或多個的類定義生成的應(yīng)用程序.app可在VisualFoxPro環(huán)境支持下,用DO命令運(yùn)行.app文件可執(zhí)行程序.exe與.app類似,可脫離VisualFoxPro環(huán)境而獨(dú)立運(yùn)行ActiveX控件.ocx將.ocx并到VisualFoxPro中后,可象基類一樣使用其中的對象Windows動態(tài)鏈接庫.dll包含能被VisualFoxPro和其他Windows應(yīng)用程序使用的函數(shù)FoxPro動態(tài)鏈接庫.fll與.dll類似,包含專為VisualFoxPro內(nèi)部調(diào)用建立的函數(shù)第一百一十一頁,共139頁。1.4面向?qū)ο蟪绦蛟O(shè)計的概念VFP不但仍然支持標(biāo)準(zhǔn)的過程化程序設(shè)計,而且在語言上還進(jìn)行了擴(kuò)展,提供了面向?qū)ο蟪绦蛟O(shè)計的強(qiáng)大功能和更大的靈活性。面向?qū)ο蟮某绦蛟O(shè)計方法與編程技術(shù)不同于標(biāo)準(zhǔn)的過程化程序設(shè)計。對象、屬性、事件和方法VisualFoxPro的類第一百一十二頁,共139頁。1.4.1對象、屬性、事件和方法

1.創(chuàng)建一個表單在介紹這些概念前,先創(chuàng)建一個表單,體會其中所包含的概念。步驟如下:(1)設(shè)置工作目錄MDC:\example &&建立工作目錄SETDEFAULTTOC: &&設(shè)置當(dāng)前缺省目錄為example(2)創(chuàng)建并打開項目myproj1

Modifyprojectmyproj1 &&發(fā)出命令后則打開如圖1-13所示畫面

圖1-13“新建表單”對話框

第一百一十三頁,共139頁。1.創(chuàng)建一個表單(續(xù))(3)進(jìn)入表單設(shè)計窗口在項目管理器中,選中“文檔”選項卡,選擇其中的“表單”對象,按下右邊的“新建”按鈕,出現(xiàn)“新建表單”對話框,如圖示1-13所示,按下其中的“新建表單”按鈕,就進(jìn)入如圖1-14所示的“表單設(shè)計器”窗口。

表單設(shè)計器窗口主要包括4個部分:表單設(shè)計器工具空白表單表單控件工具屬性窗。

第一百一十四頁,共139頁。1.創(chuàng)建一個表單(續(xù))(4)設(shè)計表單界面表單界面經(jīng)過布置與設(shè)計后,達(dá)到的要求如圖1-15所示。對對象的設(shè)置如下:1)添加標(biāo)簽對象

2)添加形狀對象3)添加命令按鈕對象4)編寫相應(yīng)的事件代碼圖1-15設(shè)計好的表單界面

第一百一十五頁,共139頁。1.創(chuàng)建一個表單(續(xù))(5)運(yùn)行代碼編寫完成后,單擊“表單”→“執(zhí)行表單”菜單項,就可以預(yù)運(yùn)行表單。單擊“圓”命令按鈕,則發(fā)生了相應(yīng)的Click事件,執(zhí)行了相應(yīng)的代碼,窗口畫面如圖1-16所示。單擊“方框”命令按鈕,畫面又如圖1-17所示。直至單擊“關(guān)閉”命令按鈕,才會關(guān)閉表單。圖1-16圓

圖1-17方框

第一百一十六頁,共139頁。2.對象的概念在上例中,可以清楚地了解VFP的事件驅(qū)動編程機(jī)制。(1)對象與類對象(Object)可以是任何的具體事物。例如,現(xiàn)實(shí)生活中的計算機(jī)、電話機(jī)、電視等,VFP中的窗口、命令按鈕、標(biāo)簽等均是對象。對象是類的一個實(shí)例,包括數(shù)據(jù)和過程。例如,在一個運(yùn)行表單上的控件就是一個對象。在VFP中,當(dāng)通過表單設(shè)計器將某一控件放進(jìn)表單時,該控件就成為一個對象,一個表單往往包含有一個或多個對象,表單本身也是一個對象。每個對象都有對應(yīng)的屬性、方法和事件。在上面的例子中,每一個對象的產(chǎn)生都是基于某個類的。例如,Ocircle命令按鈕是基于CommandButton類的,而shape1是基于Shape類的。第一百一十七頁,共139頁。2.對象的概念(續(xù))(2)對象的屬性對象的屬性(Properity)標(biāo)識了對象的特征和行為。例如,表單上的命令按鈕具有如下性質(zhì),它在表單上的位置(Left和Top)、寬度(Width)、高度(Height)、按鈕標(biāo)識(Caption)、按鈕名字(Name)等。可以通過控制對象的屬性來操作對象。屬性值既能在設(shè)計時刻也可在運(yùn)行時刻進(jìn)行設(shè)置。某些屬性值在運(yùn)行時刻為只讀,無法設(shè)置。設(shè)置屬性的語法為:

Object.Properity=aValue其中,Object是對象名,Property是屬性名

第一百一十八頁,共139頁。2.對象的概念(續(xù))(3)事件事件(Event)是由對象識別和響應(yīng)的某些操作,是一些特定的預(yù)定義的活動,可由用戶或系統(tǒng)啟動。在多數(shù)情況下,事件都是由用戶操作而引起的。例如,在VFP6.0中,當(dāng)用戶單擊按鈕、移動鼠標(biāo)、按鍵時都會觸發(fā)事件,而創(chuàng)建一個對象或者遇到導(dǎo)致錯誤的代碼時,系統(tǒng)也會產(chǎn)生一個事件。用戶可以自己編寫方法程序代碼以響應(yīng)特定的事件。

第一百一十九頁,共139頁。2.對象的概念(續(xù))(4)對象的方法對象的方法是指對象可執(zhí)行的動作。例如,表單對象的Release方法,在表單任務(wù)完成后將其從內(nèi)存釋放。每個方法都有一段內(nèi)定的或缺省的代碼相對應(yīng)。這些代碼是在創(chuàng)建類時定義并編寫的。如果對象已創(chuàng)建,便可以在應(yīng)用程序的任何一個地方調(diào)用這個對象的方法程序。調(diào)用方法程序的語法為: Object.Method

VFP中的事件集合基本上是固定的,用戶不能創(chuàng)建。方法則不同,可以無限擴(kuò)充,在創(chuàng)建類時添加新的方法。

第一百二十頁,共139頁。1.4.2VisualFoxPro的類面向?qū)ο蟪绦蛟O(shè)計引入的另外一個重要概念就是類。本小節(jié)介紹

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論