VFP 第2章自由表的基本操作_第1頁
VFP 第2章自由表的基本操作_第2頁
VFP 第2章自由表的基本操作_第3頁
VFP 第2章自由表的基本操作_第4頁
VFP 第2章自由表的基本操作_第5頁
已閱讀5頁,還剩73頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章自由表的基本操作

2,工VisualFoxPro的語言基砒1

2.2自由表的建立與修改

2.3自由表的維護

本章要點

I錄】■1?OK?火

2.1VisualFoxPro的語言基礎

2.1.1數據類型

數據類型一旦被定義,就確定了其存儲方式和使用方式。

1.字符型

字符型數據描述不具有計算能力的文字數據類型。

字符型數據(Character)是由漢字和英文字符、數字字符、空格及

其他專用字符,使用時必須用定界符雙引號(""),單引號('')或中

括號([])括起來。這里的單引號、雙引號或方括號都是西文的標點

符號,稱為定界符。

2.數值型

數值型數據用來表示一個數量的大小,數值型數據通常可細分為數值型,

浮點型,雙精度型,整型和貨幣型五種類型。

浮點型數據(Float)是數值型數據的一種,與數值型數據完全等價。浮點型數

據只是在存儲形式上采取浮點格式。

雙精度型數據(Double)是更高精度的數值型數據。它只用于數據表中的字段

類型的定義,并采用固定長度浮點格式存儲。

整型數據(Integer)是不包含小數點部分的數值型數據。它只用于數據表

中的字段類型的定義。整型數據以二進制形式存儲。

貨幣型(Currency)數據用來表示貨幣值,其書寫格式與數值型數據類似,

但要加上一個前置的符號($)。貨幣數據在存儲和計算時,采用4位小數。

3.日期型

日期型數據(Date)是用于表示日期的數據,用默認格式{mm/dd/yyyy}來

表示。其中mm代表月,dd代表日,yyyy代表年,存儲長度固定為8位。

4.日期時間型

日期時間型數據(DateTime)是描述日期和時間的數據,其默認格式為

{mm/dd/yyyyhh:mm:ss}o

其中yyyy代表年,前兩個mm代表月,dd代表日,hh代表小時,,后兩個mm

代表分鐘,ss代表秒,存儲長度固定為8位。

5.邏輯型

邏輯型數據(Logic)是描述客觀事物真假的數據,用于表示邏輯判斷結果

。邏輯型數據只有真(.工)和假(.F.)兩個值,存儲長度固定為1位。

6.備注型

備注型數套(Memo)用于存放較長的字符型數據類型,可以把它看成是字

符型數據的特殊形式。

7.通用型

通用型數據(General)是用于存儲OLE對象的數據。通用型數據中的

OLE對象可以是電子表格、文檔、圖片等。它只用于數據表中的字段類

型的定義。

2.1.2數據存儲

數據輸入、輸出是通過數據的存儲設備完成的。

數據可以存入到字段、記錄和對象中。我們把這些

供數據存儲的常量、變量、數組、字段、記錄和對

象稱為數據存儲容器。常量、內存變量、函數以及

表達式的類型包括字符型、數值型、貨幣型、邏輯

型、日期型和日期時間型等6種。

1.常量

在數據處理過程中其值不發生變化的量叫常量。

(1)數值型常量

數值型常量也就是常數,用來表示一個數量的大小,由數字0~9、小數點和正負號構

成。例如:112、3.145、-6.22o

(2)貨幣型常量

貨幣型常量用來表示貨幣值,其書寫格式與數值型常量類似,但要加上一個前置的符

號($)。例如,常量$123.456789。

(3)字符型常量

字符型常量也稱為字符串,許多常量都有定界符。

注意,不包含任何字符的字符串("")叫空串。空串與包含空格的字符串("")不同。

(4)日期型常量

日期型常量的定界符是一對花括號。

①傳統的日期格式

系統默認的日期型數據為美國日期格式“mm/dd/yy"(月/日/年),如{09/01/03}

、{09/01/2003}等。

語句SETDATETOymd把日期設置成(年/月/日)格式,命令SETCENTURYon

把年份設置成4位數字格式。

②嚴格的日期格式

嚴格的日期格式為《人yyyy-mm-dd},它不受SETDATE等語句設置的影響。

嚴格的日期格式可以在任何情況下使用,而傳統的日期格式只能在執行如下命令:

SETSTRICTDATETO0

后才可以使用。

SETSTRICTDATETO1

把系統設置為嚴格的日期格式。另外,命令SETMARKTO是設定日期分隔符。

(5)日期時間型常量

日期時間型常量包括日期和時間兩部分內容:{〈日期〉,〈時間>}。

v日期〉部分與日期型常量相似,也有傳統的和嚴格的兩種格式。v

時間》部分的格式為:[hh]:mm[:ss]][a|p]]o

SETMARKTO

?{人200309-0111:10:10},{人2003-09-0115:10:10)

(6)邏輯型常量

邏輯型數據只有邏輯真和邏輯假兩個值。邏輯真的常量表示形式有

:.T,,t,.Y.和y。邏輯假的常量表示形式有:E,f,.N,和m.。

門"■「OK?仙

2.變量

變量是在命令操作、程序運行過程中其值可以變化的量

O變量分為字段變量和內存變量兩大類。

內存變量:1.以字母、漢字、下劃線開頭;2.由字母、

漢字、數字、下劃線組成;3,至多128個字符;4.不可與系

統保留字同名。

字段變量:1.以字母、漢字開頭;2.由字母、漢字、數

字、下劃線組成;3,至多10個字符;4,不可與系統保留字

同I名。

內存變量又分為簡單內存變量和系統內存變量,系統內存變

量是VisualFoxPro系統運行時自動建立、使用的,其名字都是以

下劃線開頭,例如_dos,_pwait等。

(1)簡單內存變量

每一個變量都有一個名字,可以通過變量名訪問變量。簡單

內存變量賦值不必事先定義,例如:

X=10

門"■「OK?仙

(2)數組

數組是內存中連續的一片存儲區域,是按一定順序排列的一組內存變量,

數組中的各個變量稱為數組元素,每個數組元素可通過數組名及相應的下標來

訪問。每個數組元素相當于一個簡單變量,可以給各個元素分別賦值。在Visual

FoxPro中,一個數組中各個元素的數據類型可以不同。

創建數組的兩種命令格式為:

DIMENSION〈數組名〉(〈下標上限1>[,<下標上限2>][,……])

DECLAREv數組名〉(〈下標上限1>[,<下標上限2>][,……])

例如:

DECLAREaa(5),bb(2,3)

門"■「OK?仙

3.內存變量常用命令

(1)內存變量的賦值

格式1:STOREC表達式>T0(變量名表〉

格式2:〈內存變量名>=<表達式>

功能:格式1計算表達式的值并賦給一個或多個

內存變量;格式2只能給一個變量賦值。

(2)內存變量的顯示

格式1:LISTMEMORY[LIKEv通配符>][TOPRINTERITOFILE<

文件名〉]

格式2:DISPLAYMEMORY[LIKE<通配符>][TOPRINTERITO

FILEv文件名》]

(3)內存變量的清除

格式1:CLEARMEMORY

格式2:RELEASE〈內存變量名表,

格式3:RELEASEALL[EXTENDED]

格式4:RELEASEALL[LIKEv通酉己符>IEXCEPT〈通酉己符>]

門"■「OK?仙

(4)內存變量的保存

格式:SAVETO〈文件名〉ALL[LIKEv通配符>|

EXCEPTv通酉己符〉]

功能:將指定范圍的內存變量保存在內存變量文件中,

內存變量文件的擴展名為,men。

(5)內存變量的恢復

格式:RESTOREFROMv文件名>[ADDITIVE]

功能:把內存變量文件中的變量送回內存,不選

ADDITIVE則送回之前先清除內存中的內存變量。

4.字段變量

字段變量就是指數據表中已定義的任意一個字段

O字段變量的數據類型與該字段定義的類型一致。

字段變量的類型有數值型、浮點型、整型、雙精

度型、字符型、邏輯型、日期型、時間日期型、備

注型和通用型等。

2.1.3函數

函數名(自變量表)

自變量表可以是一個變量或多個自變量,

也可以為空,即:函數名(),此時函數名后

面的一對圓括號不能省略。

函數按功能可劃分為:數學函數、字符串

函數、日期和時間函數、類型轉換函數、測

試函數。

目錄t結束

1.數學函數(數值函數)

(1)求絕對值函數ABS

格式:ABS(〈數值表達式〉)

(2)求整函數INT

格式:INT(〈數值表達式》)

(3)四舍五入函數ROUND

格式:ROUND(〈數值表達式,,〈保留小數位》)

(4)指數函數EXP、自然對數函數LOG、平方根函數SQRT、

格式:EXP|LOG|SQRT(v數值表達式,)

(5)取模(求余數)函數MOD

格式:MOD(〈數值表達式1>,<數值表達式2>)

功能:取〈數值表達式1>除以<數值表達式2>的余數。

(6)求最大值MAX、最小值MIN

格式:MAX|MIN(〈表達式1〉,〈表達式2〉,…,<表達式n>)

門"■「OK?仙

2.字符串函數

(1)判子字符串函數AT

格式:AT(〈字符表達式1>,〈字符表達式2>)

功能:求〈字符表達式1>在〈字符表達式2>的起始位置

數值。

說明:

?若〈字符表達式2>中不包含〈字符表達式1>,則函數值為零;

?若〈字符表達式2>的值含有兩個以上的〈字符表達式1>的值,

則函數給出第一個值的位置。

?大小寫字母在檢索中視為不同。

(2)取子串函數SUBSTR

格式:SUBSTR(v字符表達式》,〈起始位置〉[,〈長度〉])

功能:對v字符表達式〉從給定的〈起始位置》開始截取指定長度

的字符,生成一個新的字符串;

說明:

若無<長度>或〈長度,大于后面剩余的字符個數,則截至末尾。

若〈起始位置〉大于字符串表達式長度,則輸出空串。

(3)取左子串函數LEFT

格式:LEFT(v字符表達式》,v數值表達式,)

功能:LEFT從〈字符表達式〉左邊截取由〈數值表達式〉的值指定

的字符,生成一個新的字符串。

(4)取右子串函數RIGHT

格式:RIGHT(v字符表達式〉,〈數值表達式〉)

(5)宏代換函數&

格式:&<字符型內存變量〉匚]

功能:替換出〈字符型內存變量》的值。即將〈字符型內存變量〉值

的定界符去掉,使其可能代表一個變量名、文件名、命令、表達式等。

說明:在表達式中使用該函數時,如果函數中的字符型內存變量名

與其后面的字符無明顯分界時,應使用圓點將它們隔開。例如:

A=“北京”

B="中國”

?“&A.是&B.首都”

主屏幕顯示:北京是中國首都

(7)刪除首部和尾部空格的函數LTRIM,TRIM(RTRIM)和ALLTRIM

格式:LTRIM|TRIM|RTRIM|ALLTRIM(〈字符表達式〉)

功能:LTRIM是刪除字符串首部的空格,TRIM和RTRIM是刪除字符串尾部的空格,ALLTRIM則可刪除

字符串首部和尾部的空格。

(8)構造空格函數SPACE

格式:SPACE(〈數值表達式,)

功能:產生由V數值表達式〉的值決定的空格數。

(9)生成重復字符串函數REPLICATER

格式:REPLICATER(〈字符表達式>,〈數值表達式〉)

功能:把〈字符表達式〉的值(字符串)重復由V數值表達式>的值指定的次數,生成新的字符串。

(10)大小寫字母轉換函數LOWERIUPPER

格式:LOWER|UPPER(〈字符表達式,)

功能:LOWER把〈字符表達式》中的大寫字母轉換為小寫字母;UPPER把

v字符表達式》中的小寫字母轉換為大寫字母。

(11)字符串替換函數STUFF

格式:STUFF(〈字符表達式1>,〈起始位置〉,〈字符個數>,<字符表達式2>)

功能:從指定位置開始,用〈字符表達式2>替換〈字符表達式1>中<字符個

數》指定的字符串。

說明:

〈字符表達式2>中的字符個數與〈字符表達式1>中的字符個數可以不等。

如果〈字符個數〉為0,則插入〈字符表達式2>。

如果〈字符表達式2>為空字符串,則刪除〈字符表達式1>中指定字符。

3.日期和時間函數

(1)系統日期和時間函數DATE|TIME|DATeTIME

格式:

DATE()

TIME()

DATETIME()

功能:DATE。返回當前系統日期,函數值為日期型;TIME。以24小時制格式返回當

前系統時間,函數值為字符型;DATeTIME()返回當前系統日期,函數值為日期型。

(2)年、月、日函數YEAR|MONTH|DAY

格式:YEAR|MONTH|DAY(〈日期表達式,)

功能:從v日期表達式》中求出年份、月份、日份的數值。

(3)星期函數DOW|CDOW

格式1:DOW(〈日期表達式〉)

格式2:CDOW(〈日期表達式〉)

功能:格式1給出v日期表達式》指定的日期是一星期的第幾天。1表示星期日,2表

示星期一,……,7表示星期六;格式2給出星期兒的英文名稱。

4.類型轉換函數

(1)字符轉換為數值函數VAL

格式:VAL(v字符表達式〉)

功能:將字符型數據轉換為數值型數據。

說明:

若v字符表達式〉由數字字符和小數點組成,則轉換成相

應的數值,但只保留兩位小數,其余小數四舍五入。

若v字符表達式〉由非數字字符打頭,則轉換為0.00。

若v字符表達式〉由數字字符打頭,且混有非數字字符時

,則轉換到第一個非數字字符。

例如:

?VAL("1234.5678"),VAL("FoxPro"),VAL(,,1234FOX.5678")

主屏幕顯示:1234.570.001234.00

門"■「OK?仙

(2)數值轉換為字符函數STR

格式:STR(v數值表達式,[,〈長度〉[,v小數位數>]])

功能:把v數值表達式〉的運算結果轉換為指定長度的字符串。

說明:

v長度〉應包括小數點在內,不指定長度時,系統默認整數位10位。

若指定v長度,小于〈數值表達式,整數位數,則用一串"*”號表示數

據溢出;若〈長度>為0,則返回空字符串。

若省略〈小數位〉,則只轉換整數位;若指定小數位,則對下一位四

舍五入。

例如:

?STR(1234.5678,7,2),STR(1234.5678,4),STR(1234.5678)

主屏幕顯示:1234.5712351234

門"■「OK?仙

(3)字符轉換為日期函數CTOD

格式:CTOD(〈字符表達式〉)

功能:將符合yy/mm/dd、mm/dd/yy日期格式的字符串轉換為相應日期。

(4)日期轉換為字符函數DTOC

格式:DTOC(〈日期表達式》[,11)

功能:將〈日期表達式>轉換為相應的字符串。

說明:不選用1時,按mm/dd/yy格式轉換;選用,1時,按yyyymmdd格式

轉換。

(5)ASCII碼值轉換為字符函數CHR

格式:CHR(〈數值表達式,)

功能:將〈數值表達式>所表示的ASCII碼值轉換為相應的字符。

(6)字符轉換成ASCII碼值函數ASC

格式:ASC(〈字符表達式》)

功能:返回〈字符表達式〉最左邊的一個字符的ASCII碼值。

5.測試函數

與數據表有關的測試函數,見“2.3自由表的維護”。

(1)值域測試函數BETWEEN

格式:BETWEEN(v表達式l>,v表達式2>,v表達式3>)

功能:判斷一個表達式的值是否介于另外兩個表達式的

值之間。當v表達式1>值大于等于v表達式2>且小于等于v

表達式3>時,函數值為邏輯真(.T)否則函數只為邏輯假

(E)。

(2)數據類型測試函數VARTYPE

格式:VARTYPE(〈表達式〉)

功能:測試〈表達式〉的類型,返回一個大寫字母,函數

值為字符型。若〈表達式〉是一個數組,則根據第一個數組

元素的類型返回字符串。

(3)條件測試函數IIF

格式:IIF(V邏輯表達式,,〈表達式l>,v表達式2>)

功能:測試v邏輯表達式》的值,若為邏輯真.T.,函數返

回v表達式1>的值,若為邏輯假,F.,函數返回v表達式2>的

值。v表達式1>和v表達式2>的類型不要求相同。

2.1.4表達式

表達式是由常量、變量和函數等通過特定

的運算符連接起來的式子。

1.數值表達式

優先級運算符說明

1()包含表達式內的子表達式

2**或八乘方運算

3*、人%乘、除、求余運算.求余運算%和取余

函MOD()的作用相同

4+?.—加、減運算

2.字符表達式

字符表達式由字符串運算符將字符型數據連接起

來形成,其運算結果仍然是字符型數據。字符串運

算符有以下兩個,它們的優先級相同:

+:前后兩個字符串首尾連接形成一個新的字符

串。

連接前后兩個字符串,并將前字符串的尾部

空格移到合并后的新字符串尾部。

3.日期時間表達式

日期時間表達式中可以使用的運算符也有+和一兩個。

格式結果及類型

〈日期>+<天數>日期型。指定日期若干天后的日期

〈天數“〈日期〉日期型.指定日期若干天后的日期

〈日期〉-<天數〉日期型。指定日期若干天前的日期

〈日期>-《日期>數值型。兩個指定日期相差的天數

〈日期時間〉+<秒數,日期時間型。指定日期時間若干秒后的日期時間

書數“(日期時間;二日期時間型。指定日期時間若干秒后的日期時間

《日期時間〉-<秒數〉日期時間型。指定日期時間若干秒刖的日期時間

〈日期時間》-<日期時間》數值型。兩個指定日期時間相差的秒數

4.關系表達式

關系表達式通常也稱為比較表達式,其運算結果為邏輯型常量。關

系成立時,表達式的結果為,T.,反之,表達式結果為.F.。格式為:

v表達式1>〈關系運算符>v表達式2>

運算符說明運算符說明

<小于<=小于等于

>大于>=大于等于

=等于■字符串精確比較

<>、#或!=不等于$一子串包含測流

運算符==和$僅適用于字符型數據。其他運算符適用于任何類型的數據。

SETEXACTON/OFF

【工具】一【選項】菜單

上束

5.邏輯表達式

邏輯表達式由邏輯運算符將邏輯型數據連接起來而形成

,其運算結果仍然是邏輯型數據。邏輯運算符有三個:

,NOT,或!(邏輯非)、.AND.(邏輯與)以及,0R.(邏輯或

)o也可以省略兩端的點(省略時邏輯運算符兩邊必須有空

格),寫成NOT、AND、ORo

優先級順序為:NOT,AND,ORo

門"■「OK?仙

6.運算符優先級

在每一類運算符中,各個運算符有一定的運算優先級

O而不同類型的運算也可能出現在同一個表達式中,這時

它們的運算優先級順序為:先執行算術運算符,字符串運

算符和日期時間運算符,其次執行關系運算符,最后執行

邏輯運算符。

2.2自由表的建立與修改

數據表簡稱表,在VisualFoxPro系統中,

把包含在數據庫中的表稱為數據庫表,并把

不包含在數據庫而獨立存在的表稱為自由表

o自由表可以添加在數據庫中而成為數據庫

表,數據庫表也可以從數據庫中移出而成為

自由表。

2.2.1表結構的建立

1.設計表結構

(1)字段名

(2)字段類型和寬度

學號姓名性別身高體重血型團員否入團時間興趣愛好

1161001張駿男1.8150A是1998-1-1唱歌,武術

1161002陳晴更1.73120B是1997-5-1書法、繪畫

1161003馬大大男1.8130A否1998-7-1文藝

1161004夏小雪女1.6295A是1998-5-1計算機動畫

1161005鐘大成女1.651020否1998-8-1體操

1161006王曉寧男1.82135AB是1997-10-1游泳、滑冰

1161007魏文鼎男1.75120B是1999-10-1舞蹈

1161008宋成城男1.78123B否1998-10-1武術

1161009李文靜女1.63980是1998-8-1打球

1161010張寧如女1.67110A否1999-5-1讀書

Xsqk.dbf

上一弓一

字段名字段類型字段寬度小數點

學號字符型7

姓名字符型8

性別字符型2

身后數值型42

體重數值型3

血型字符型2

團員邏輯型1

入團時間日期型8

愛好備注型4

照片通用型4

JIV

學號課程編號|成績|

學號數學英語政治計算機應用電子技術總分平均分1161003200965]

11610016087808785399.079.811610032017781

11610028589859590444.088.81161003205581\

11610035545418571297.059.4

1161002200188|

11610046096805555346.069.2

1161004200867[

11610058596806365389.077.8

1161009200989I

11610065094838571383.076.6

1161006200990:

11610076792628785393.078.6

91|

11610088784856590411.082.211610012009

85i

11610096180464471302.060.411610042053

11610106056667345300.060.01161009200570j

1161007200620?

..................

cj.dbfXk.dbf

門"■「OK?仙

2.利用表設計器創建表結構

用表設計器定義表結構的操作方法常有下面三種。

(1)使用菜單方法

從VisualFoxPro系統的主菜單開始,打開“文件”菜單,選擇“新

建”

(2)使用命令的方法

建立數據表的命令是:

CREATE[<表文件名>|[.dbf]]

例如要建立數據表xsqk.dbf時可使用命令:

CREATEXSQK

命令執行后彈出表設計器,其它操作與“使用菜單方法”相同。

(3)在項目管理器中創建

2.2.2表數據的輸入

(1)使用APPEND命令的方法

APPEND命令是在表的尾部增加記錄,它有兩種格式:

APPEND或APPENDBLANKo

執行一次APPENDBLANK命令后在表中添加一條空記錄;

執行APPEND命令需要立刻交互輸入新的記錄值,一次可以連續輸入

多條新的記錄。然后按<CTRL>+<W>或單擊窗口的“關閉”按鈕結束

并保存輸入的新記錄;按<ESC>結束并不保存輸入的新記錄。

(2)使用菜單方法

可選【顯示】一【瀏覽…】菜單,出現“瀏覽”窗口,再執行【顯

示】一【追加方式】菜單或執行【表】一【追加記錄】菜單(也可以按

<Ctrl>+<Y>鍵),即在瀏覽器尾部會增加一條空白記錄。

2.2.3備注字段和通用型字段數據的輸入和修改

備注型數據顯示為“Memo”或“memo”,其中“Memo”

表示對應的記錄的備注字段已經輸入了數據,而“memo"表

示該字段中沒有備注內容。要為某記錄的備注字段輸入數據

或修改其中的內容,可雙擊該記錄的備注字段,進入備注字

段的編輯窗口,編輯完后按<CTRL>+vW>或單擊窗口的“

關閉”按鈕結束并保存輸入的新內容;按vESC>結束并不保

存輸入的新內容。

2.2.4表結構的修改

(1)使用菜單方法

執行【顯示】一【表設計器】菜單命令

(2)使用命令方法

打開表設計器的命令是:

MODIFYSTRUCTURE

門"■「OK?仙

2.3自由表的維護

2.3.1VISUALFOXPRO命令結構及常用子句

VFP命令格式:

〈命令動詞〉[〈功能子句1>][<功能子句2>][…]&&注釋部分

例如顯示命令LIST的格式:

LIST[<范圍>][[〈FIELDS〉]〈字段名表達式表>][FOR<條件>]

[WHILE〈條件>][OFF][TO<設備名|文件名|內存變量名>]&&注釋

1.命令動詞

表示命令執行的操作,是命令中必不可少的部分。

2.語句體

語句體由一系列短語構成,可使用的常用子句(短語)如下所示:

(1)FIELDS〈字段名表〉

用于指定操作的字段,〈字段名表〉中有多個字段時,字段名之間用

逗號分隔。例如命令:

usexsqk

listfields姓名,身高&&顯示xsqk.dbf表的“姓名”和“身高”兩列

數據

(2)FOR<條件>

對滿足條件的所有記錄進行操作。例如命令:

usexsqk

listfor身高>1.7&&顯示xsqk.dbf表中身高大于L7米的所有記錄

(3)WHILEv條件〉

對滿足條件的記錄進行操作。從表中的當前正在使用的記錄開始向

下順序判斷,當遇到第一個不滿足條件的5己錄時,

管其后是否還有滿足條件的記錄。

(4)v范圍,

表示記錄的執行范圍,可以是ALL,NEXT<n>,RECCORD<n>,REST

幾項中之一,其中的vn>是數值型表達式。系統對表中的記錄是逐條進行處理

的。VisualFoxPro為每一個打開的表設置了一個內部使用的記錄指針,指向正在

被操作的記錄,該記錄稱為當前記錄。記錄指針的作用是標識表的當前記錄。

ALL:表示全部記錄;

NEXT<n>:表示從當前記錄開始的以下n條記錄;

RECORD<n>:表示第n號記錄;

REST:表示從當前記錄到最后一條記錄。

(5)TO<設備名|文件名|內存變量名〉

表示操作結果的輸出去向。

一目毛

3.命令書寫格式說明

在書寫命令格式時,還用到一些符號,這些符號

只是在書寫時使用,實際操作時并不輸入。這些符

號以及它們所表示的意義如下:

<>:表示其中內容為必選項;

[]:表示其中內容為可選項;

I:表示其兩側項目只能任選一項;

…:表示同類項的多次重復。

一目毛上束

4.命令的書寫與使用規則

在輸入命令時,應注意下面規則:

?每條命令以命令動詞開始,以回車鍵結束,命令中各短語的順序是

任意的。

?命令動詞、短語中的英文單詞及函數名均可縮寫為前四個字符,大

小寫可混用。

?命令動詞、語句體及其各短語之間均以空格相隔。

?一行只能寫一個命令,不能將兩個命令寫在同一行。

?命令一行寫不下時,可以由系統自然換行或在行尾加分號(;),

回車強制換行。命令行的長度小于或等于2048個字符。

2.3.2表的打開與關閉

(1)表的打開

可以通過選【文件】一【打開】菜單(或工具欄上的“

打開”按鈕)打開表,也可以用以下命令打開表:

Use[v表名>,dbf]

(2)表的關閉

常常使用下面命令關閉表:

use&&關閉當前使用的表

closetables&&關閉當前數據庫中所有打開的表

closetablesall&&關閉所有打開的表

closeall&&關閉所有打開的表、程序文件及表單等

clearall&&關閉所有的表、程序文件及表單等,清除內存變量

2.3.3表數據的瀏覽和修改

1.同時進行數據瀏覽和修改的操作

打開瀏覽器的方法有多種,常用的方法有:

?首先打開要操作的表,再執行菜單【顯示】一【瀏覽…】。

?在項目管理器中選擇要操作的表,然后單擊“瀏覽”命令按鈕。

?在命令方式下,首先用USE命令打開要操作的表,然后鍵入BROWSE命

令。BROWSE命令的格式如下:

Browse[〈范圍〉][Fields〈字段名表>][Forv條件表達式》]

[<NOAPPEND>][<NOMODIFY>]

交互式地對當前表記錄進行編輯的命令:

CHANGE|EDIT[〈范圍〉][Fieldsv字段名表<[For<條件表達式>]

目錄t結束

2.數據的選擇顯示

數據的顯示常常使用LIST和DISPLAY命令,命令

格式如下:

List|Display[<范圍>][[Fields]〈字段名表達式表>][For(條

件表達式>][WHILEv條件表達式>][ToPrinter][ToFile<文件名>]

[off]

門"■「OK?仙

2.3.4記錄指針的移動

對于一個打開的表文件來說,系統對表中的記錄是逐條

進行處理的,表剛打開時指針是指向表中最上面的記錄的。

1.命令方法移動指針

命令方法移動指針需要了解表文件的邏輯結構,表最上

面的記錄是首記錄,記為TOP;最下面的記錄是尾記錄,記

為BOTTOM;在第一個記錄之前有一個文件起始標識,稱

為文件首(BeginningofFile,簡稱BOF);在最后一個記錄

的后面有一個文件結束標識,稱為文件尾(EndofFile,簡

稱EOF)。移動指針就是要把指針定位在某個記錄上。

I錄】■1?OK?火

文件頭ALL

首記錄一

1852

RECORDN+M

目錄上一弓一結束

(1)GO命令

GO命令是絕對定位命令,它將記錄指針定位于指定位置。GO命令

有如下兩種格式:

GO[TO]TOP|BOTTOM

[GO[TO]]<數值表達式〉

GOTOP命令把指針定位在首記錄;GOBOTTOM命令把指針定位在

末記錄;

(2)SKIP命令

SKIP命令是相對定位命令,是相對于當前記錄進行定位的命令。

命令格式:SKIP[v數值表達式>]

〈數值表達式>的值取正或負的整數,表示指針從當前記錄開始移動

多少個記錄。v數值表達式〉的值大于零時指針往文件尾移動,小于零時

指針往文件頭移動;當〈數值表達式〉缺省時表示1。

2.菜單方法移動指針

打開“瀏覽”窗口后,選擇【表】一【轉

到記錄】菜單

3.與指針及表相關的測試函數

(1)文件結束測試函數EOF

格式:EOF([V數值表達式>]|v表別名>])

功能:測試v數值表達式》指定工作區中表文件記錄指針

是否指向文件結束位置(表文件尾),表文件尾是指最后一

條記錄得后面位置。若指針指向結束位置,函數值為邏輯真

(.T.),否則函數值為假(?F.)。

(2)文件起始測試函數BOF

格式:BOF([V數值表達式>]|v表別名>])

功能:測試v數值表達式》指定的工作區中表文件記錄指

針是否指向起始位置,表文件起始位置在首記錄的前面,也

稱為文件頭。若指針指向起始位置,函數值為邏輯真(,「)

,否則為假(.F.)。

(3)記錄號測試函數RECNO

格式:RECNO([v數值表達式》|〈表別名〉])

功能:給出v數值表達式》指定的工作區中打開的數據表

的當前記錄號。

(4)記錄總數測試函數RECCOUNT

格式:RECCOUNT([V數值表達式,I〈表別名〉])

功能:測試v數值表達式,指定的工作區中數據表的記錄

個數。

(5)文件測試函數FILE

格式:FILE(v文件名〉)

功能:測試v字符表達式,指定的磁盤文件是否存在,若

存在,函數值為邏輯真(,「),否則函數值為假

例如:

?FILE('XSQK.DBF')

(6)記錄大小測試函數RECSIZE

格式:RECSIZE([v數值表達式〉Iv表別名>])

功能:測試<數值表達式>指定的工作區中數據表記錄的

長度。

(7)數據類型測試函數TYPE

格式:TYPE(v表達式〉)

功能:測試〈表達式〉的數據類型。

(8)檢索測試函數FOUND

格式:FOUND()

功能:測試執行LOCATE、CONTINUE、SEEK和FIND等

定位命令(見第三章)的定位是否成功,定位成功則FOUND

()的函數值為.T,,否則為,F.。

門"■「OK?仙

(9)記錄刪除測試函數DELETE

格式:DELETED([<表的別名>I〈工作區號>])

功能:測試指定的表,或在指定工作區中所打開的表,記錄指針所指的當前

記錄是否有刪除標記“*”。若有刪除標記,函數值為真,否則為假。若缺省自

變量,則測試當前工作區中所打開的表。

(10)表文件名測試函數DBF

格式:DBF([V表的別名>|〈工作區號>])

功能:測試指定的表,或在指定工作區中所打開的表在磁盤的位置。若缺省

自變量,則測試當前工作區中所打開的表。

2.3.5表與表結構的復制

1.結構與數據的同時復制

COPYTO〈表文件〉[V范圍>][FIELDS〈字段

名表>][FOR|WHILE〈條件>]

功能:將滿足條件的記錄按指定的結構復制到新的表文件。

說明:若不指定條件、范圍和字段表,則按原結構復制所有記錄;V

字段名表》的字段和排列順序決定了新表的字段和排列順序;V范圍〉缺

省值為ALL;當被復制的表有對應的,fpt文件時,對應的,fpt文件會同時

被復制。復制時被復制的表必須是打開的。

2.只復制表文件結構

COPYSTRUCTURETO〈文件名〉[FIELDS

〈字段名表>]

功能:按指定的字段表復制表結構到一個新文件

,若不指定字段表,則復制與當前表相同的結構。

說明:復制時被復制的表必須是打開的;當被復

制的表有對應的.fpt文件時,對應的.fpt文件會同時

被復制。

3.只復制記錄數據

COPYTOv文本文件名〉[V范圍>][FIELv字段名表》]

[FOR|WHILE〈條件>]SDF|DELIMITED

功能:按指定格式將表文件的記錄復制到文本文件

(.TXT),若省略范圍、條件和字段表,則復制所有記錄值。

說明:v范圍,缺省值為ALL;復制時被復制的表必須是

打開的。SDF為標準數據格式,DELIMITED為限定符格式。

4.復制任何類型的文件

COPYFILE〈源文件〉TO〈目的文件〉

說明:〈源文件〉可以是任何類型,〈源文件>和<目的文件〉的

擴展名不能省去;源表文件須是關閉的;當被復制的表有對應的,fpt文

件時,對應的,fpt文件不會同時被復制,需要用另外一條命令進行復制

O

5.記錄數據復制生成數組

COPYTOARRAY數組名[〈范圍〉][FIELD〈字段名表>][FOR]

WHILE〈條件>]

功能:記錄數據傳送到二維數組,每個記錄對應數組的一行。

6.復制生成排序表文件

命令格式:

SORTTO〈排序文件〉ON〈字段1>[/A|/D][/C][,字段2][/A|

/D][/C]….[V范圍>][FIELDSv字段表>][FOR|WHILE〈條件>]

功能:按指定的關鍵字,重新排列記錄順序組成新文件(排序文件)

,原文件不變。

說明:排序文件以關鍵字段值為序,從左到右依次序為第一,第二

,…,順序;/D表示降序,缺省為升序;[/C]不區分大小寫字母;只允

許C,N,D,L四種類型作排序關鍵字段;若缺省范圍和條件,則對全部

記錄排序;若不指定字段表,則排序文件與原文件結構相同。

2.3.6記錄的插入與追加

1.APEND命令

2.APPENDFROM命令

格式工:

APPENDFROM表文件名[FIELDS<字段名表>][FOR|WHILEV條件

>]

不選[F正LDS<字段名表>]時,源表中所有字段的數據都添加到當前表,否則

只添加〈字段名表》中出現的字段;不選[FOR|WHILEv條件>]時,源表中所有

的記錄都添加到當前表,否則只添加源表中滿足〈條件>的記錄。

格式2:

APPENDFROM文本文件SDF|DELIMITED[FIELDV字段名表>]

[FOR|WHILEV條件>]

文本文件為標準格式或限定格式文件,標準格式選SDF,否則選DELIMITED。

格式3:

APPENDFROMARRAY數組名[FIELDV字段名表>][FOR|WHILE<

條件>]

門"■「OK?仙

3.INSERT命令

INSERT命令可以在表的任意位置插入新的記錄,它的命

令格式是:

INSERT[BEFORE][BLANK]

如果不指定BEFORE則在當前記錄之后插入一條新記錄,

否則在當前記錄之前插入一條新記錄。

如果不指定BSNK則出現類似執行APPEND命令時出現的

界面,并以交互方式輸入記錄的值。否則在當前記錄之后(

或之前)插入一條空白紀錄。

2.3.7記錄的刪除與恢復

VisualFoxPro的記錄刪除分為邏輯刪除和物理刪除。邏輯刪除就是

給記錄打上刪除標記;物理刪除就是把打上刪除標記的記錄從數據表中

徹底刪除,或把表中的所有記錄全部徹底刪除而只保留表結構。記錄的

恢復就是把邏輯刪除標記去掉。

1.記錄的邏輯刪除

(1)菜單方法與鼠標單擊方法

首先打開“瀏覽”窗口,然后從“表”菜單中選擇“刪除記錄”

(2)邏輯刪除命令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論