《VFP應(yīng)用與開發(fā)案例教程》_第1頁
《VFP應(yīng)用與開發(fā)案例教程》_第2頁
《VFP應(yīng)用與開發(fā)案例教程》_第3頁
《VFP應(yīng)用與開發(fā)案例教程》_第4頁
《VFP應(yīng)用與開發(fā)案例教程》_第5頁
已閱讀5頁,還剩120頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《VFP應(yīng)用與開發(fā)案例教程》

第三章VisualFoxPro熬據(jù)庫和表

本章教學(xué)要求:掌握數(shù)據(jù)庫和表的建立,對表的基本

操作。______________________________________________

3.1VisualFoxPro數(shù)據(jù)庫和表的建立

3.2VisualFoxPro表記錄的操作

3.3表的統(tǒng)計

3.4表的索引

3.5多表操作

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.1VisualFoxPro數(shù)據(jù)庫和表的建政

對于一個數(shù)據(jù)庫應(yīng)用系統(tǒng)來說,如何組織好相關(guān)的數(shù)

據(jù),是數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)成功與否的關(guān)鍵。用Visual

FoxPro開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)時,通常應(yīng)建立一個數(shù)據(jù)庫,

再在數(shù)據(jù)庫下面建立若干個表和視圖,一個表在一個時

期只能屬于一個數(shù)據(jù)庫,一個表也可以是一個自由表,

即不屬于任何數(shù)據(jù)庫。

應(yīng)當(dāng)說明的是數(shù)據(jù)庫是表、視圖和連接等的集合,數(shù)

據(jù)記錄內(nèi)容是存放在表中的,如圖3-1所示。

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

學(xué)生學(xué)籍庫

圖3-1學(xué)生學(xué)籍庫的組成

總目錄UIOIH遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.1.1數(shù)據(jù)庫的建立

在VisualFoxPro中有多種方法建立數(shù)據(jù)庫。

?在命令窗口中輸入命令

格式:Createdatabase數(shù)據(jù)庫名

例如:在命令窗口中輸入:

Createdatabasec:\學(xué)籍管理、學(xué)生學(xué)籍庫

將在“c:\學(xué)籍管理”文件夾下創(chuàng)建一個文件名為“學(xué)生

學(xué)籍庫.DBC”數(shù)據(jù)庫。

總目錄K』THOI遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

?通過菜單或工具欄上的“新建”命令

步驟:

點擊工具欄上的“新建”按鈕,

出現(xiàn)如圖3-2所示的“新建”對

話框,選擇“數(shù)據(jù)庫”,然后點

擊“新建文件”按鈕,出現(xiàn)

“創(chuàng)建”對話框,輸入文件名

c:\學(xué)籍管理'學(xué)生學(xué)籍庫(如圖

3-3所示),點擊“保存”按鈕,

屏幕上將出現(xiàn)“數(shù)據(jù)庫設(shè)計器”

窗口,如圖3-4所不。

圖3-2新建對話框

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

圖3-3創(chuàng)建對話框

總目錄遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

圖3-4數(shù)據(jù)庫設(shè)計器窗口

總目錄遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

?使用數(shù)據(jù)庫向?qū)?chuàng)建數(shù)據(jù)庫

步驟:

點擊工具欄中的“新建”按鈕,出現(xiàn)“新建”對話框,

選擇“數(shù)據(jù)庫”,然后點擊“向?qū)А卑粹o,按照屏幕指

示進(jìn)行操作即可。

3.1.2數(shù)據(jù)庫的打開與關(guān)閉

1.打開數(shù)據(jù)庫

?使用OpenDataBase命令

格式:OpenDataBase[〈數(shù)據(jù)庫名[?>]

[Shared|Exclusive][Noupdate][Validate]

總目錄?i[dHIRA遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

命令參數(shù):

若省略數(shù)據(jù)庫名或用?代替數(shù)據(jù)名,則系統(tǒng)將顯示

“打開”對話框,讓用戶從中選擇現(xiàn)有的數(shù)據(jù)庫。

Shared:表式以共享方式打開數(shù)據(jù)庫。

Exclusive:表式以獨占方式打開數(shù)據(jù)庫。

Noupdate:指定不能對數(shù)據(jù)庫進(jìn)行修改操作,即只能

對數(shù)據(jù)庫進(jìn)行讀操作。

Validate:指定在打開數(shù)據(jù)庫時對數(shù)據(jù)庫中的表和索

引是否可用進(jìn)行檢查。

例如:打開c:\學(xué)籍管理'學(xué)生學(xué)籍庫.dbc數(shù)據(jù)庫

opendatabasec:\學(xué)籍管理'學(xué)生學(xué)籍庫

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

?在VisualFoxPro的集成環(huán)境中打開數(shù)據(jù)庫

點擊工具欄中的“Open”按鈕,然后在“打開”對話框中

選擇要打開的數(shù)據(jù)庫文件。

說明:當(dāng)數(shù)據(jù)庫打開后,若要使用表還必須使用Use命令

打開表。

2.關(guān)閉數(shù)據(jù)庫

?使用CloseDataBase命令

格式:CloseDataBase[All]

命令參數(shù):

總目錄-1[dHIRA遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

All:關(guān)閉當(dāng)前數(shù)據(jù)庫和表,如果沒有當(dāng)前數(shù)據(jù)庫,則

關(guān)閉所有已打開的自由表、索引文件和格式文件,并把

當(dāng)前工作區(qū)設(shè)為1。

3.1.3表的建立

在VisualFoxPro中表是非常重要的,數(shù)據(jù)都是以記錄的形

式存放在表中的,表由兩部分組成:表結(jié)構(gòu)和記錄,

創(chuàng)建一個表時,首先應(yīng)創(chuàng)建表結(jié)構(gòu),然后再根據(jù)需要輸

入數(shù)據(jù),創(chuàng)建一個表結(jié)構(gòu)時,應(yīng)事先確定表結(jié)構(gòu)的如下

內(nèi)容:

?字段名

只能以字母、下劃線和漢字開始,后面可跟字母、數(shù)字、

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

下劃線和漢字。每個字段名的最大長度不超過10個字符。

下列符號不能用于表字段名:

@#$%A&*空格!?VisualFoxPro的保留字等

?數(shù)據(jù)類型、寬度及小數(shù)據(jù)位數(shù)

VisualFoxPro表中常用的數(shù)據(jù)類型:

VisualFoxPro子段數(shù)據(jù)類型表:

小數(shù)

寬度位數(shù)

備注

(字節(jié))

字符型(Character)<=254任意字符

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

字符型(Character))<=254任意字符

貨幣型(Currency)8

數(shù)值型(Numeric)<=20<=19

浮動型(Float)<=20<=19

日期型(Date)8

日期時間型

8

(DateTime)

總目錄UIOIH遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

雙精度型(Double)8<=7

整型(Integer)4

邏輯型(Logical)1

__________

備注型(Memo)4

保存OLE對象的

通用型(General)

f用

字符型(二進(jìn)制)保存數(shù)據(jù)不經(jīng)代

<=254

(Binary)碼頁修改

備注型(二進(jìn)制)保存數(shù)據(jù)不經(jīng)代

4

(MemoBinary)碼頁修改

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

在VisualFoxPro中創(chuàng)建新表的方法有多種,但通常是

在VisualFoxPro的集成開發(fā)環(huán)境中點擊“文件”菜單

一“新建”,在彈出的新建對話框中選擇“表”,然后

選擇“新建文件”按鈕,屏幕上出現(xiàn)“創(chuàng)建”對話框,

在該對話框中鍵入表文件名(如圖3-5所示),鍵入表文

件名后,點擊“保存”按鈕,屏幕上出現(xiàn)“表設(shè)計器”

窗口,在“表設(shè)計器”窗口中輸入表結(jié)構(gòu)(如圖3-6所

示),輸入完成后點擊“確定”按鈕,屏幕上出現(xiàn)“現(xiàn)

在輸入數(shù)據(jù)記錄嗎?”對話時,若選擇“否”則不輸入

數(shù)據(jù),若選擇“是”則屏幕上出現(xiàn)數(shù)據(jù)記錄輸入窗口,

可在其中輸入數(shù)據(jù)(如圖3-7所示),輸入完成后關(guān)閉數(shù)

據(jù)記錄輸入窗口即可。

注:備注型輸入方法是當(dāng)光標(biāo)移動到備注型字段時按

"Ctrl+PageDown"鍵,屏幕上就會出現(xiàn)輸入備注型字段

的編輯窗體,如圖3-7所示。

總目錄IkIBEB遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

初建3兇

保存在9:|二|學(xué)籍管理三]勺固座圈▼

輸入表名:

保存類型Q):

圖3-5創(chuàng)建對話框

總目錄遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

圖3-6表設(shè)計器-學(xué)生基本信息表結(jié)構(gòu)

總目錄3遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

當(dāng)學(xué)生基本信息表.苻歷-1□1x|

學(xué)時獲市三好學(xué)_|

生稱號

-姓

-性T

-出

-身

和平

利T

memo

I*I」

圖3-7數(shù)據(jù)記錄輸入

總目錄遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.1.4表的打開與關(guān)閉

1.通過菜單操作打開表

操作步驟:

點擊“文件”菜單一“打開”,屏幕上出現(xiàn)“打開”文

件對話框,選擇要打開的表文件(如圖3-8所示),然后

點擊“確定”按鈕即可。

注:在圖3-8中,若選擇了“以只讀方式打開(R)”,則

只能對打開的表進(jìn)行讀操作不能進(jìn)行修改、刪除和增加

等操作;若選擇了“獨占”,則其它用戶此時只能以共

享方式打開該表。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

1打開

查找范圍(X)|_y學(xué)籍營理734■直今回一

dH]^^4.dbF

學(xué)生基本信息表.dbf

文件名3M|學(xué)生基本信息表dbf

文件類型(X):|表(*.ab£)三1

L以只讀方式打開電)

代碼頁W

r-獨占(£)

圖3-8“打開”對話框

總目錄遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

2.通過命令打開表

在VisualFoxPro的命令窗口中使用Use命令打開表。

命令格式:Use〈表文件名〉[Shared|Exclusive][Alias<

別名刁

命令參數(shù):

Shared:指定以共享方式打開表,以這種方式打開的表,

可以對表進(jìn)行增加、刪除和修改數(shù)據(jù)記錄的操作,但不

能修改表結(jié)構(gòu)。

Exclusive:指定以獨占方式打開表,以這種方式打開的

表,除可以對表進(jìn)行增加、刪除和修改數(shù)據(jù)記錄的操作,

還可以修改修表的結(jié)構(gòu)。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

若不指定打開方式,則以獨占方式打開表。

Alias〈別名〉:指定打開表的別名,若省略該參數(shù),表的

別名就是表名。

例如要共享方式打開表C:\學(xué)籍管理'學(xué)生基本信息表.dbf,

可使用如下命令:

UseC:\學(xué)籍管理'學(xué)生基本信息表.dbfShared

若要對表進(jìn)行操作,必須先打開表。

3.表的關(guān)閉

對表的操作完成后,應(yīng)及時關(guān)閉表。

命令格式:Use

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.2VisualFoxPro表憶錄的據(jù)作

3.2.1記錄指針定位

在VisualFoxPro中當(dāng)打開一個表時,系統(tǒng)為該表設(shè)置一個

記錄指針,指向表中的某一條記錄,記錄指針指向的記

錄稱為當(dāng)前記錄。當(dāng)數(shù)據(jù)表剛打開時,記錄指針指向第

一條記錄,若要移動記錄指針可使用下面的命令。

1.Go/GoTo命令

命令格式:

Go/GoTo[[RECORD]〈記錄號>|<TOP>|<BOTTOM刁[In<

工作區(qū)>|〈表別名刁

命令功能:移動記錄指針。

總目錄-1[dHIRA遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

命令參數(shù):

[RECORD]〈記錄號〉:將表記錄指針移到〈記錄號〉指定

的記錄。

TOP:將表記錄指針移到第一條記錄。

BOTTOM:將表記錄指針移到最后一條記錄。

[In〈工作區(qū)>|〈表別名刁:指定要移到記錄表所在的工作

區(qū),若省略該參數(shù)則是對當(dāng)前工作的表進(jìn)行操作。

例如將當(dāng)前工作區(qū)的表的記錄指針移到第3條記錄,可使

用如下命令:

GoTo3

或者

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

Go3

或者

3

2.Skip命令

命令格式:Skip卜數(shù)值表達(dá)式習(xí)[Inv工作區(qū)>|〈表別名習(xí)

命令功能:移動記錄指針。

命令參數(shù):

〈數(shù)值表達(dá)式〉:指定記錄指針移動的相對記錄數(shù),即若v

數(shù)值表達(dá)式〉為正數(shù),表示記錄指針向文件尾方向移動,為

負(fù)數(shù)表示向文件頭方向移動記錄指針;若省略該參數(shù),則

表示記錄指針向文件尾方向移動一個記錄位置。

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

In〈工作區(qū)>|〈表別名〉:指定要移動記錄指針的工作區(qū)或

表別名。

例如假設(shè)當(dāng)前工作區(qū)的當(dāng)前記錄為12,總共有30條,執(zhí)

行如下程序:

Skip-1&&記錄指針移到第n條記錄

Skip-90&&記錄指針移到第1條記錄

Skip&&記錄指針移到第2條記錄

Skip100&&記錄指針移到第30條記錄,即最后一條

Skip&&出錯,因為已到文件尾

與記錄指針移動有關(guān)的函數(shù)有3個:

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

Recno():返回當(dāng)前記錄號。

Bof():測試記錄指針是否已到文件頭,若已到文件頭返

回.T.,否則返回.F.。

Eof():測試記錄指針是否已到文件尾,若已到文件尾返

回.T.,否則返回.F?。

3.2.2增加記錄

向表中增加記錄主要有兩種方式,一種是直接通過全屏

幕方式從鍵盤輸入數(shù)據(jù),另一種是從其它表文件中把有

關(guān)數(shù)據(jù)記錄添加到表中。

1.從鍵盤輸入新記錄

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

(1)Apppend命令

命令格式:Append[Blank][In工作區(qū)|表別名][NoMenu]

命令功能:在表的最末尾添加記錄。

命令參數(shù):

Blank:若有該參數(shù),則在表的末尾添加一條新記錄,若

沒有該參數(shù),則屏幕上出現(xiàn)數(shù)據(jù)輸入窗體,在該窗體中

可進(jìn)行添加記錄操作,如圖3-9所示。

In工作區(qū)|表別名:指定要對哪一個工作區(qū)的表進(jìn)行操作,

省略該參數(shù),則是向當(dāng)前工作區(qū)的表添加記錄。

NoMenu:指定從系統(tǒng)菜單中刪除“表”菜單項。

總目錄KIKi131遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

tnjJ

圖3-9向表中追加記錄

總目錄kIIKWH遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

例如,要向表“C:\學(xué)籍管理'學(xué)生基本信息表.dbf,添加一

個空白記錄,可在命令窗口中輸入如下命令:

UseC:\學(xué)籍管理'學(xué)生基本信息表&&若表文件的擴展

名為.DBF可省略

AppendBlank

Use&&關(guān)閉表

(2)Insert命令

命令格式:Insert[Before][Blank]

命令功能:在當(dāng)前表中插入新的記錄。

命令參數(shù):

總目錄??MIMOIRA遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

Before:在當(dāng)前記錄之前插入新記錄,若沒有該參數(shù)則是

在當(dāng)前記錄之后插入新記錄。

Blank:插入一條空記錄,屏幕上不出現(xiàn)數(shù)據(jù)輸入窗口;

若沒有該參數(shù),屏幕上出現(xiàn)數(shù)據(jù)輸入窗口,用戶可以輸

入新的數(shù)據(jù)。

例如在表“C:\學(xué)籍管理'學(xué)生基本信息表.dbF的第3和第

4條記錄之間插入新的記錄,可在命令窗口輸入如下命令:

UseC:\學(xué)籍管理'學(xué)生基本信息表.DBF

Go3&&使當(dāng)記錄指針指向第4條記錄

Insert

Use

總目錄KIra遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

2.從其它表文件中把有關(guān)數(shù)據(jù)記錄添加到表

命令格式:

AppendFrom[文件名[?][Fields〈字段列表刁[For〈條件表

達(dá)式刁

命令功能:從其它文件中將所需的數(shù)據(jù)復(fù)制到當(dāng)前表中。

命令參數(shù):

文件名:指定源數(shù)據(jù)文件名,即數(shù)據(jù)來自哪一個文件。

?:當(dāng)執(zhí)行該命令時,顯示打開文件對話框,讓用戶從中

選擇一個源數(shù)據(jù)文件。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

Fields〈字段列表〉:指定要將源表的哪些字段復(fù)制到當(dāng)前

表中,若有多個字段,字段之間用逗號”隔開,若

省略該參數(shù),則是將源表的所有字段值復(fù)制到當(dāng)前表以

對應(yīng)的字段中去。

Forv條件表達(dá)式,:指定添加記錄的條件,只有符合條件

的記錄才會被添加到當(dāng)前表中,若省略該參數(shù),則是將

源數(shù)據(jù)文件所有的記錄添加到當(dāng)前表中。

例如,C:\學(xué)籍管理'新生數(shù)據(jù).DBF的內(nèi)容如圖3-10所示,

C:\學(xué)籍管理'學(xué)生基本信息表.DBF的內(nèi)容如圖3-11所示。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

新生數(shù)露-!□1x|

出生日期|政治貌

李光輝07/14/1985:黨員memo

11/17/1985i

羅麗07/04/19861memo

酸雨德畬63/18/198510^

圖3-10新生數(shù)據(jù)表內(nèi)容

總目錄遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

勵學(xué)生基本信息表

學(xué)號姓名性別出生日期

20040805W-07/04/1985i170.3|memo

20040807張和平06/13/1985

20040805劉軍07/04/1985:170.3Jmemo

20040807張和平06/13/1985i175.0?Memo

圖3-11學(xué)生基本信息表內(nèi)容

總目錄遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

將C:\學(xué)籍管理'新生數(shù)據(jù).DBF文件中的所有記錄復(fù)制到

C:\學(xué)籍管理、學(xué)生基本信息表.DBF中,在命令窗口中輸入

如下命令:

UseC:\學(xué)籍管理'學(xué)生基本信息表.DBF

AppendFromC:\學(xué)籍管理'新生數(shù)據(jù).DBF

Use

上述命令執(zhí)行完后,表C:\學(xué)籍管理'學(xué)生基本信息表.DBF

的內(nèi)容如圖3-12所示

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

圖3-12追加記錄后學(xué)生基本信息表內(nèi)容

總目錄遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.2.3刪除記錄與恢復(fù)

當(dāng)表中的數(shù)據(jù)不再需要時,應(yīng)將刪除。為了防止誤刪

除,在VisualFoxPro中刪除記錄分兩步進(jìn)行,第一步是邏

輯刪除,即只在要刪除的記錄上作一個刪除標(biāo)記,數(shù)據(jù)

記錄并沒有真正從表中刪除,當(dāng)發(fā)現(xiàn)刪除操作有誤時,

還可以用恢復(fù)命令將其恢復(fù),顯然只被邏輯刪除的記錄

仍要占用硬盤空間,被邏輯刪除的記錄在列表顯示(List

或Display)時記錄前有一個刪除標(biāo)記"”或“■”(用

Browse瀏覽記錄時);第二步是物理刪除,即將作了刪

除標(biāo)記的記錄從硬盤中徹底刪除,物理刪除后的記錄不

可以再恢復(fù)。

1.邏輯刪除

總目愚forV條件習(xí)[While〈條件習(xí)

《VFP應(yīng)用與開發(fā)案例教程》

1.邏輯刪除

命令格式:Delete卜范圍習(xí)[For〈條件刁[While〈條件刁

[In〈工作區(qū)>|〈表別名刁

命令功能:對符合條件的記錄進(jìn)行邏輯刪除。

命令參數(shù):

〈范圍〉:指定要操作的記錄范圍,該參數(shù)可以是:

All:所有記錄。

Nextn:從當(dāng)前記錄開始的后面n個記錄。

Recordn:第n號記錄。

Rest:從當(dāng)前記錄開始一直到文件結(jié)束。

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

For<條件>:指定要作刪除標(biāo)記的條件,依次對指定范圍

內(nèi)的記錄進(jìn)行操作,若條件為真,對記錄作刪除標(biāo)記,

否則不作刪除標(biāo)記,然后再對下范圍內(nèi)的一個記錄進(jìn)行

操作。

Whilev條件>:指定要作刪除標(biāo)記的條件,依次對指定范

圍內(nèi)的記錄進(jìn)行操作,若條件為真,對記錄作刪除標(biāo)記,

若條件為假或已到范圍內(nèi)的最后一個記錄則停止。

若省略范圍、For<條件>和While<條件>參數(shù),則只刪除

當(dāng)前記錄。

若省略范圍,但有Forv條件,或Whilev條件>參數(shù),則缺

省的范圍為整個記錄。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

In〈工作區(qū)>|〈表別名〉:指定要進(jìn)行邏輯刪除的表所在的

工作區(qū)或表別名,若省略該參數(shù),則是對當(dāng)前工作區(qū)進(jìn)

行操作。

例如,假設(shè)當(dāng)前表為前面的學(xué)生基本信息表,執(zhí)行如下

操作:

Deleterecord5&&給第5條記錄加刪除標(biāo)記

Go7&&給第7條記錄成為當(dāng)前記錄

Delete&&給當(dāng)前記錄加刪除標(biāo)記

Deletefor學(xué)號='20040805'&&給學(xué)號為20040805

加刪除標(biāo)記。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

List&&列表顯示記錄

記錄號學(xué)號姓名性別出生日期身高簡歷

1*20040805劉軍.T.07/04/85170.3memo

220040807張平.T.06/13/85175.0Memo

3*20040805劉軍.T.07/04/85170.3memo

420040807張平.T.06/13/85175.0Memo

5*李光輝.T.07/14/85170.3memo

6張勇.T.11/17/85177.6Memo

7*羅麗.F.07/04/86162.8memo

8歐陽德雷.T.03/18/85175.0Memo

總目錄遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

2.物理刪除

命令格式:Pack

命令功能:將作了刪除標(biāo)記的記錄從表中徹底刪除,釋

放其所占的內(nèi)存空間。

說明:要執(zhí)行該命令,必須以獨占方式打開表。

例如:

UseC:\學(xué)籍管理'學(xué)生基本信息表.DBFexclusive

Deletefbr姓名='李勇'

Pack

Use

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

4.記錄的恢復(fù)

命令格式:RECALL卜范圍〉][FOR<條件習(xí)[WHILE〈條

件刁

命令功能:取消已打刪除標(biāo)記記錄的刪除標(biāo)記。

命令參數(shù):

〈范圍〉:參見DELETE的命令參數(shù)說明。

Forv條件,:指定要恢復(fù)記錄的條件,依次對指定范圍內(nèi)

的記錄進(jìn)行操作,若條件為真,對恢復(fù)記錄,否則不恢

復(fù),然后再對下范圍內(nèi)的一個記錄進(jìn)行操作。

Whilev條件>:指定要恢復(fù)的條件,依次對指定范圍內(nèi)的

記錄進(jìn)行操作,若條件為真,對恢復(fù)記錄,若條件為假

或已到范圍內(nèi)的最后一個記錄則停止。

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

若省略范圍、For<條件>和While<條件>參數(shù),則只恢復(fù)

當(dāng)前記錄。

若省略范圍,但有Forv條件〉或While〈條件>參數(shù),則缺省

的范圍為整個記錄。

In〈工作區(qū)>|〈表別名〉:指定要進(jìn)行恢復(fù)的表所在的工作

區(qū)或表別名,若省略該參數(shù),則是對當(dāng)前工作區(qū)進(jìn)行操

作。

例如:

UseC:\學(xué)籍管理'學(xué)生基本信息表.DBF

5&&使第5號記錄為當(dāng)前記錄

delete&&對第5號記錄作刪除標(biāo)記錄

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

7&&使第5號記錄為當(dāng)前記錄

delete&&對第7號記錄作刪除標(biāo)記錄

recall&&恢復(fù)第7號記錄

recallall&&恢復(fù)所有記錄

3.2.4修改記錄

對表記錄的修改有兩種方式:屏幕編輯方式和和程序方

1.屏幕編輯方式

?EDIT7cHANGE命令

命令格式:EDIT/CHANGE[FIELDS〈字段名列表刁卜范

圍習(xí)[FOR條件][WHILE條件]

總目錄?1Ml—I遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

命令參數(shù):

FIELDSv字段名列表,:指定哪些字段可以被修改。

〈范圍〉:參見DELETE命令說明。

Forv條件〉或Whilev條件>:指定要修改記錄的條件,符

合條件的記錄才會在編輯窗口中顯示并修改。

說明:EDIT和CHANGE的功能是完全相同的。

3.2.5查詢記錄

把數(shù)據(jù)放在數(shù)據(jù)表中,是為了將來在需要時對其進(jìn)行查

詢,查詢操作是數(shù)據(jù)庫操作中最常用的。

1.用Browse命令進(jìn)行瀏覽查詢

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

命令格式:

Browse[Scope][Fileds<FieldList>][fbrv條件表達(dá)式刁

功能:顯示數(shù)據(jù)表中的記錄。

參數(shù)說明:

Scope:指定記錄范圍,該參數(shù)的取值可以是:All(所有

記親)、Nextn(當(dāng)前記錄及其之后的n個記錄)、

Recordn(指定第n條記錄)和Rest(當(dāng)前記錄及其之后

的所有記錄)。若省略該參數(shù),缺省值為AL

Fields<FieldList>:指定要查詢顯示的字段名列表,若省

該參數(shù),則顯示所有字段。

for〈條件表達(dá)式〉:指定要查詢顯示的記錄應(yīng)滿足的條件。

總目錄k1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

例如:

Setcenturyon&&設(shè)置日期要顯示世紀(jì)

Setdateansi&&設(shè)置日期顯示格式為yyyy.mm.dd

Opendatabasec:\學(xué)籍管理'學(xué)生學(xué)籍庫.DBC

Use學(xué)生基本信息

Browsefor出生日期>「1980.05.23}

Close

上面的程序運行過程中將打開一個查詢窗口(如圖3-14所

示),可在其中瀏覽查詢到的記錄。

總目錄K?MIra遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

圖3-14數(shù)據(jù)瀏覽查詢窗口

總目錄遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

2,用Locate命令進(jìn)行查詢

命令格式:

Locate[Scope][forv條件表達(dá)式刁

功能:將記錄指針定位到指定記錄范圍內(nèi)滿足條件的第

一條記錄,若沒有記錄滿足條件,記錄移到記錄末尾,

Eof()函數(shù)返回“真”。

參數(shù)說明:

Scope:指定記錄范圍,該參數(shù)的取值可以是:All(所有

記親)、Nextn(當(dāng)前記錄及其之后的n個記錄)、

Recordn(指定第n條記錄)和Rest(當(dāng)前記錄及其之后

的所有記錄)。若省略該參數(shù),缺省值為All。

forv條件表達(dá)式〉:指定要查找的記錄應(yīng)滿足的條件。

總目錄?1Ml?二1ra遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3,用Continue命令進(jìn)行查詢

命令格式:

Continue

功能:激活Locate命令,繼續(xù)順查找。

例如:

Setcenturyon&&設(shè)置日期要顯示世紀(jì)

Setdateansi&&設(shè)置日期顯示格式為yyyy.mm.dd

Opendatabasec:\學(xué)籍管理'學(xué)生學(xué)籍庫.DBC

Use學(xué)生基本信息

Locatefor出生日期={A1980.05.23}

總目錄K?MIra遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

Dowhile.T.

IfEof()=.T.

?’沒有滿足條件的記錄!'

exit

else

?學(xué)號,姓名,性別,出生日期

Continue&&查找下一個出生日期為1980.05.23的記錄

Endif

Enddo

Closeall

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.2.6從表向數(shù)組傳遞數(shù)據(jù)

在VisualFoxPro中對數(shù)組大小沒有什么限制,主要取決于

磁盤和內(nèi)存空間的大小,數(shù)組存在于內(nèi)存,運行處理速

度很快。

當(dāng)前記錄傳到數(shù)組中/數(shù)組中的數(shù)據(jù)送當(dāng)前記錄:

有關(guān)命令:

1.Scatter命令

命令格式:

Scatter[Fields〈字段名列表刁[Memo]TO〈數(shù)組名〉

功能:將當(dāng)前表的當(dāng)前復(fù)制到數(shù)組中。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

參數(shù)說明:

〈字段名列表》:指定要復(fù)制到數(shù)組的字段,若省略該參

數(shù),則將所有字段復(fù)制到數(shù)組中(對于備注型字段需要

Memo參數(shù))。

Memo:指定復(fù)制備注型字段,若省略該參數(shù),則不復(fù)制

備注型字段到數(shù)組。

〈數(shù)組名〉:指定記錄要復(fù)制到的數(shù)組。

說明:若要復(fù)制的字段個數(shù)大于數(shù)組的大小,系統(tǒng)會自

動將數(shù)組的大小擴大,若數(shù)組未定義,系統(tǒng)會自動創(chuàng)建

數(shù)組。

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

2.Gather命令

命令格式:

GatherFrom〈數(shù)組名>[Fields〈字段名列表刁[Memo]

功能:將數(shù)組中的數(shù)據(jù)復(fù)制到當(dāng)前表的當(dāng)前記錄中。

參數(shù)說明:

〈數(shù)組名〉:指定要復(fù)制數(shù)據(jù)的數(shù)組。

〈字段名列表,:指定要接收數(shù)據(jù)的字段,若省略該參數(shù),

則將對所有字段進(jìn)行操作(對于備注型字段需要Memo參

數(shù))。

總目錄?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

3.2.7使用SQL語言對表進(jìn)行操作

結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)是目前

關(guān)系型數(shù)據(jù)庫中應(yīng)用最廣泛的語言之一,美國國家標(biāo)準(zhǔn)協(xié)

會(ANSI)早在1982年就開始著手SQL的標(biāo)準(zhǔn)化工作,

并公布了SQL標(biāo)準(zhǔn),目前SQL已成為關(guān)系型數(shù)據(jù)庫語言的

國際標(biāo)準(zhǔn)。

SQL語言具有如下特點:

?綜合統(tǒng)一。SQL語言集數(shù)據(jù)操縱語言(DML)、數(shù)

據(jù)語言(DDL)和數(shù)據(jù)控制語言的功能于一體,能獨立完

成數(shù)據(jù)庫的全部活動。

?高度非過程化。用SQL語言對數(shù)據(jù)進(jìn)行操作時,用

戶只需提出“做什么”,而不需要指出“怎么做”,也不

需要指出存取路徑,存取路徑和操作過程都由系統(tǒng)自動完

股一

?IEi—1CT1遼寧交?,F(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

?面向集合的操作方式。SQL語言的操作對象、查詢結(jié)

果都可以是元組的集合。

?SQL語言簡潔,易學(xué)易用。

SQL語言即是自主型語言,又是嵌入式語言。當(dāng)作為自主

型語言使用時,用戶通過聯(lián)機方式直接在終端上鍵入SQL

命令對數(shù)據(jù)庫進(jìn)行操作;SQL作為嵌入式語言可嵌入到其

它高級語言中使用,例如C語言、VisualFoxPro等。

值得注意的是,實際系統(tǒng)中實施的SQL語言與標(biāo)準(zhǔn)SQL語

言是有一定差異的,大部分的實際系統(tǒng)并沒有完全支持

標(biāo)準(zhǔn)的SQL,但在某些方面還對標(biāo)準(zhǔn)SQL語言進(jìn)行了擴充。

1.SELECT-SQL數(shù)據(jù)查詢命令

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

命令格式:

Selectv表達(dá)式1>[as別名1卜表達(dá)式2>[as別名2],…,V表

達(dá)式n>[as別名n]

From〈表1>,〈表2>,...,〈表m>

[Into〈輸出目標(biāo)習(xí)

[Where〈條件表達(dá)式刁

[groupby〈分組條件刁

[having〈條件表達(dá)式刁

[orderby〈排序方式封

總目錄?IEi—1CT1遼寧交專現(xiàn)教中心白夏清

《VFP應(yīng)用與開發(fā)案例教程》

參數(shù)說明:

from:指定要查找的數(shù)據(jù)來自哪些表或視圖。

Into:指出查詢結(jié)果輸出到哪里,若省該參數(shù),屏幕上會

出現(xiàn)查詢窗口顯示查詢結(jié)果。

Where:指定查詢

溫馨提示

  • 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

提交評論