在數(shù)據(jù)庫操作過程中,用戶需要了解數(shù)據(jù)對象的類型、狀態(tài)等屬性,Visual FoxPro提供了相關(guān)的測試函數(shù),使用戶能夠準(zhǔn)確地獲取操作對象的相關(guān)屬性。
1.數(shù)據(jù)類型測試函數(shù)
格式:VARTYPE((表達(dá)式),[(邏輯表達(dá)式)])
功能:測試表達(dá)式的數(shù)據(jù)類型,返回用字母代表的數(shù)據(jù)類型。函數(shù)值為字符型。未定義或錯(cuò)誤的表達(dá)式返回字母U.若表達(dá)式是一個(gè)數(shù)組,則根據(jù)第一個(gè)數(shù)組元素的類型返回字符串。
若表達(dá)式的運(yùn)算結(jié)果是NULL值,則根據(jù)函數(shù)中邏輯表達(dá)式的值決定是否返回表達(dá)式的類型。具體規(guī)則是:如果邏輯表達(dá)式為.T,則返回表達(dá)式的原數(shù)據(jù)類型。如果邏輯表達(dá)式為.F,或省略,則返回X,表明表達(dá)式的運(yùn)算結(jié)果是NUll值。
舉例:
a=DATE()
a=NUll
?VARTYPE($385),VARTYPE([FoxPro]),VARTYPE(a,T.),VARTYPE(a)
輸出為:Y C D X.
2.表頭測試函數(shù)
格式:BOF([(工作區(qū)號)])l<別名)])
功能:測試指定或當(dāng)前工作區(qū)的記錄指針是否超過了第一個(gè)邏輯記錄,即是否指向表頭,若是,函數(shù)值為.T,否則為.F(工作區(qū)號)用于指定工作區(qū),(別名)為工作區(qū)的別名或在該工作區(qū)上打開的表的別名。當(dāng)<工作區(qū)號>和<別名>都缺省不寫時(shí),默認(rèn)為當(dāng)前工作區(qū)。
3.表尾測試函數(shù)
格式:EOF([(工作區(qū)號)[(別名>])
功能:測試指定或當(dāng)前工作區(qū)中記錄指針是否超過了最后一個(gè)邏輯記錄,即是否指向表的末尾,若是,函數(shù)值為.T,否則為。F自變量含義同BOF函數(shù),缺省時(shí)默認(rèn)為當(dāng)前工作區(qū)。
4.記錄號測試函數(shù)
格式:REcNO([<工作區(qū)號>}(別名>])
功能:返回指定或當(dāng)前工作區(qū)中當(dāng)前記錄的記錄號,函數(shù)值為數(shù)值型。省略參數(shù)時(shí),默認(rèn)為當(dāng)前工作區(qū)。如果記錄指針在最后一個(gè)記錄之后,即EOF()為.T,RECNO()返回比記錄總數(shù)大l的值。如果記錄指針在第一個(gè)記錄之前或者無記錄,即BOF()為.T.,REcONO()返回1。
5.記錄個(gè)數(shù)測試函數(shù)
格式:RECCOUNT([(工作區(qū)號|別名>])
功能:返回當(dāng)前或指定表中記錄的個(gè)數(shù)。如果在指定的工作區(qū)中沒有表被打開,則函數(shù)值為O。如果省略參數(shù),則默認(rèn)為當(dāng)前工作區(qū).RECCOUNT()返回的值不受SET r)EI.ETED和SET FIITER的影響,總是返回包括加有刪除標(biāo)記在內(nèi)的全部記錄數(shù)。
6.查找是否成功測試函數(shù)
格式:FOUND([<工作區(qū)號『別名>])
功能:在當(dāng)前或指定表中,檢測是否找到所需的數(shù)據(jù)。如果省略參數(shù),則默認(rèn)為當(dāng)前工作區(qū)。數(shù)據(jù)搜索由FIND、SEEK、LOCATE或CONTINUE命令實(shí)現(xiàn)。如果這些命令搜索到所需的數(shù)據(jù)記錄,函數(shù)值為.T,否則函數(shù)值為。F如果指定的工作區(qū)中沒有表被打開,則FOUND()返回。F如果用非搜索命令如GO移動記錄指針,則函數(shù)值為.F
7.文件是否存在測試函數(shù)
格式:FILE((文件名>)
功能:檢測指定的文件是否存在。如果文件存在,則函數(shù)值為.T,否則函數(shù)值為。F文件名必須是全稱,包括盤符、路徑和擴(kuò)展名,且(文件名)是字符型表達(dá)式。
8.判斷值介于兩個(gè)值之間的函數(shù)
格式:BETwEEN(<被測試表達(dá)式>,<下限表達(dá)式),(上限表達(dá)式))
功能:判斷表達(dá)式的值是否介于相同數(shù)據(jù)類型的兩個(gè)表達(dá)式值之間.BETwEEN()首先計(jì)算表達(dá)式的值。如果一個(gè)字符、數(shù)值、日期、表達(dá)式的值介于兩個(gè)相同類型表達(dá)式的值之間,即被測表達(dá)式的值大于或等于下限表達(dá)式的值,小于或者等于上限表達(dá)式的值,BETW:EEN()將返回.T.值,否則返回.F
舉例:
gz一375
7 BETWEEN(gz,260,650)
輸出為。T
9.條件函數(shù)IIF
格式:IIF((邏輯型表達(dá)式),(表達(dá)式1),(表達(dá)式2>)
功能:若邏輯型表達(dá)式的值為.T,函數(shù)值為(表達(dá)式1>的值,否則為<表達(dá)式2>的值。
舉例:
xb=“女”
?IIF(xB=[男],1,IIF(Xb一[女],2,3))
輸出為2。
相關(guān)推薦:
2012年計(jì)算機(jī)等考四級數(shù)據(jù)庫工程師備考筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |