自動替換字段_第1頁
自動替換字段_第2頁
自動替換字段_第3頁
自動替換字段_第4頁
自動替換字段_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.2.6自動替換字段【格式】REPLACE<字段1>WITH<表達式1>[ADDITIVE][,<字段2>WITH<表達式2>[ADDITIVE]...][<范圍>][FOR<邏輯表達式

1>][WHILE<邏輯表達式2>][NOOPTIMIZE]【功能】用表達式(<表達式1>、<表達式2>…)的值替換數(shù)據(jù)庫中原來字段(<字段1>、<字

段2>…)中的數(shù)據(jù)?!菊f明】⑴對于數(shù)值型字段,若<表達式1>,<表達式

2>…的值比字段實際寬度長,那么REPLACE命令將按下面規(guī)則強制執(zhí)行:①首先,截取小數(shù)的位置,對字段的小數(shù)部分四舍五入;②如果其值還不適合字段寬度,則用科學(xué)計數(shù)法替換字段的內(nèi)容(肯定會損失精度);③最后,所有方法都失敗,用“*”替換字段的內(nèi)容。⑵省略范圍時替換當前記錄中的字段。⑶ADDITIVE選項只適用于備注字段的替換。若使用該選項,則把新內(nèi)容追加到原備注字段內(nèi)容后,否則,將覆蓋原備注字段的內(nèi)容。⑷<表達式1>,<表達式2>…的數(shù)據(jù)類型應(yīng)分別與<字段1>,<字段2>…的類型相同,否則就會出錯。3.3.1數(shù)據(jù)庫的排序【格式】SORT

TO<新庫文件>ON<字段1>[/A

|

/D][/C][,<字段2>[/A

|

/D][/C]..[ASCENDING

|

DESCENDING][<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>][FIELDS<字段名表>][NOOPTIMIZE]【功能】對當前打開的數(shù)據(jù)庫文件按照指定的字段排序,并將排序結(jié)果輸出到一個新的數(shù)據(jù)庫文件中。3.3.2索引文件的建立、打開與關(guān)閉索引文件的概念索引文件的建立──INDEX【格式】INDEX

ON<表達式>TO

<idx索引文件>|TAG<索引標識名>[OF

<cdx

索引文件>][FOR

<邏輯表達式>][COMPACT]

[ASCENDING|DESCENDING][UNIQUE][ADDITIVE]【功能】對當前打開的數(shù)據(jù)庫文件,按關(guān)鍵字表達式值的邏輯順序建立索引文件?!菊f明】⑴Foxpro允許生成兩種類型的索引文件:單索引文件(包含單一鍵值的索引文件.IDX)和復(fù)合索引文件(包含多重鍵值的索引文件.CDX)。⑵只有一個索引文件(主索引文件)控制數(shù)據(jù)庫顯示.⑶<表達式>應(yīng)含有當前數(shù)據(jù)庫的字段。⑷使用TAG<索引標識名>[OF

<cdx索引文件>]選項可以生成復(fù)合索引文件(.CDX),這種索引文件

可以由任意數(shù)量的標記(索引表目)組成,每個標記由它的唯一的<索引標識名>所標識。復(fù)合索引文件又分為兩種類型:結(jié)構(gòu)復(fù)合索引文件:當給出TAG<索引標識名>子句

而沒有給出可選項OF

<cdx索引文件>子句時,它總是具有與數(shù)據(jù)庫相同的名字,每當數(shù)據(jù)庫打開時,它也自動隨之打開。非結(jié)構(gòu)復(fù)合索引文件:在TAG<索引標識名>后使用<cdx索引文件>]子句可以生成,它必須用SETINDEX或USE命令中的INDEX打開。3.引文件的打開⑴打開數(shù)據(jù)庫文件的同時打開索引文件在USE命令中使用INDEX選項可在打開數(shù)據(jù)庫文件的同時打開相關(guān)的索引文件⑵在數(shù)據(jù)庫已經(jīng)打開的情況下打開索引文件【格式】SET

INDEX

TO<索引文件名表>【功能】在數(shù)據(jù)庫文件已經(jīng)打開的情況下打開索引文件(.IDX)。⒋索引文件的關(guān)閉【格式】CLOSE

INDEX或SET

INDEX

TO【功能】關(guān)閉當前工作區(qū)中所有已打開的單索引文件和獨立的復(fù)合索引文件。【說明】該命令只關(guān)閉數(shù)據(jù)庫的索引文件,而不關(guān)閉數(shù)據(jù)庫文件。3.3.3索引文件的維護選擇主索引文件──SET

ORDER

TO重建索引文件──REINDEX【格式】REINDEX【功能】給一個已建好的索引文件重新建立索引?!菊f明】⑴在執(zhí)行REINDEX命令之前,必須先打開原來的索引文件。⑵REINDEX命令也會更新復(fù)合索引文件中所有的“識別索引”(TAG)。⑶REINDEX命令在重建索引文件時仍將保持索引文件的原有屬性。這種重新建立索引并不是改變關(guān)鍵字值,而是將對數(shù)據(jù)庫文件的修改在原來建好的索引文件中反映出來。3.3.4索引查找1.

FIND【格式】FIND<字符串>【功能】在當前數(shù)據(jù)庫文件的主索引文件中查找符合指定<字符串>的第一條記錄?!菊f明】⑴FIND命令必須是在當前數(shù)據(jù)庫已建立索引且索引文件處于打開狀態(tài)時才能使用。⑵FIND命令只能找到相匹配的第一條記錄。若找到,則FOUND()返回.T.,否則返回.F.。⑶FIND只能查找字符串,且字符串也可以不加引號,但是當索引關(guān)鍵字值有前導(dǎo)空格時,字符串必須加引號。當使用字符型內(nèi)存變量時,應(yīng)用宏替換函數(shù)“&”。⑷FIND命令的執(zhí)行受以下兩條設(shè)置命令的影響:②SET

EXACT

ON|OFF設(shè)置為ON時,執(zhí)行精確比較(即<字符串>必須與索引關(guān)鍵字的值完全匹配)。設(shè)置為

OFF時(缺省設(shè)置),執(zhí)行不精確比較(即<字符串>可以是索引關(guān)鍵字的全部,也可以是左端的幾個字符)。2.

SEEK【格式】SEEK<表達式>【功能】在當前數(shù)據(jù)庫文件的主索引文件中查找與指定<表達式>相匹配的第一條記錄?!菊f明】⑴當SEEK中<表達式>為字符串時,須用定界符;為內(nèi)存變量和數(shù)值,不需用定界符;為日期,須用一對花括號括起來;為邏輯值,用.T.,.Y.表真,.F.,.N.表示假。⑵SEEK可以查找字符型、數(shù)值型、日期型和邏輯型數(shù)據(jù),使用起來比FIND要靈活。函數(shù)數(shù)據(jù)庫的統(tǒng)計與匯總3.4.1數(shù)據(jù)庫記錄的統(tǒng)計【格式】COUNT[<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>]

[TO<內(nèi)存變量>][NOOPTIMIZE]【功能】統(tǒng)計當前打開的數(shù)據(jù)庫文件中某范圍內(nèi)滿足給定條件的記錄數(shù)?!菊f明】⑴該命令用于統(tǒng)計滿足給定條件的記錄個數(shù),使用

TO<內(nèi)存變量>選項可將統(tǒng)計結(jié)果存入指定的內(nèi)存變量中。省略條件和范圍時,對全部記錄統(tǒng)計。⑵如果執(zhí)行了SET

DELETED

ON命令,則做了刪除標記的記錄不統(tǒng)計在內(nèi),但RECCOUNT()函數(shù)

將忽略此設(shè)置,即使做了刪除標記,它仍將這些記錄統(tǒng)計在內(nèi)。3.4.2字段求和【格式】SUM[<表達式列表>][<范圍>][FOR<邏輯表達式1>]

[WHILE<邏緝表達式2>]

[TO<內(nèi)存變量表>|

TO

ARRAY<數(shù)組>][NOOPTIMIZE]【功能】對當前打開的數(shù)據(jù)庫文件中指定的數(shù)值字段表達式求和,并將求和結(jié)果存入內(nèi)存變量或數(shù)組中。【說明】⑴省略<范圍>,默認為ALL。⑵同時省略<范圍>、FOR及WHILE時,則對全部記錄求和。⑶命令中的<表達式列表>可以是數(shù)值型字段名,也可以是含有數(shù)值型字段的表達式,當有多個時,需要用逗號“,”隔開。如果省略<表達式列表>,則對數(shù)據(jù)庫中全部數(shù)值型字段求和。計算結(jié)果可存入由<內(nèi)存變量表>指定的內(nèi)存變量或由<數(shù)組>3.4.3字段求平均值【格式】AVERAGE[<表達式列表>][<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>][TO<內(nèi)存變量表>|TO

ARRAY<數(shù)組>][NOOPTIMIZE]【功能】計算當前打開的數(shù)據(jù)庫文件中指定的數(shù)值字段表達式的算數(shù)平均值,并將結(jié)果存入內(nèi)存變量或數(shù)組中?!菊f明】參見SUM命令的說明。3.4.4字段的計算求值【格式】CALCULATE<表達式列表>[<范圍>][FOR<邏輯表達式1>] [WHILE

<邏輯表達式2>][TO

<內(nèi)存變量表>

|

TO

ARRAY

<數(shù)組>]

[NOOPTIMIZE]【功能】對當前打開的數(shù)據(jù)庫文件中的數(shù)據(jù)進行財務(wù)及統(tǒng)計計算,并將計算結(jié)果存入內(nèi)存變量或數(shù)組中?!菊f明】⑴省略<范圍>、FOR<邏輯表達式1>、WHILE<邏輯表達式2>時,統(tǒng)計計算數(shù)據(jù)庫的全部記錄,否則只統(tǒng)計計算指定范圍內(nèi)滿足條件的記錄。⑵<表達式列表>為一個或多個用逗號“,”分隔的財務(wù)及統(tǒng)計函數(shù)。這些函數(shù)包括:①AVG(<數(shù)值表達式>):計算數(shù)據(jù)庫中某一范圍或滿足某條件的數(shù)值型字段表達式的平均值。②CNT():計算數(shù)據(jù)庫中某一范圍或滿足某條件的計錄的個數(shù)。③MAX(<表達式>)、MIN(<表達式>):計算指定范圍內(nèi)滿足某條件的字段表達式的最大(小)值。其中<表達式>可為數(shù)值型、字符型或日期型。④NPV(<利率>,<現(xiàn)金流量值>[,<初期投資值>]):計算數(shù)據(jù)庫中指定字段的凈現(xiàn)值。⑤STD(<數(shù)值表達式>):計算數(shù)據(jù)庫中指定字段的標準差。其中<數(shù)值表達式>可以是字段名或含有字段名的表達式。⑥SUM(<數(shù)值表達式>):計算數(shù)據(jù)庫中指定字段表達式的總和。其中<數(shù)值表達式>可以是字段名或含有字段名的表達式。⑦VAR(<數(shù)值表達式>):計算數(shù)據(jù)庫中指定字段的均方差。其中<數(shù)值表達式>可以是字段名或含有字段名的表達式。3.4.5數(shù)據(jù)庫的分類匯總【格式】TOTAL

TO<匯總文件>ON<關(guān)鍵字段>

[FIELDS<字段列表>|

FIELDS

LIKE<框架>|FIELDS

EXCEPT<框架>][<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>][NOOPTIMIZE]【功能】對當前打開的數(shù)據(jù)庫文件中指定的數(shù)值型字段,按照關(guān)鍵字段進行分類統(tǒng)計,并將統(tǒng)計結(jié)果存入一個新的數(shù)據(jù)庫文件中?!菊f明】⑴執(zhí)行分類匯總之前必須先對要分類匯總的數(shù)據(jù)庫文件按要分類匯總的字段(即關(guān)鍵字段)進行排序

或索引。⑵<匯總文件>為一獨立的數(shù)據(jù)庫文件,系統(tǒng)默認的擴展名為.DBF。FIELDS<字段列表>指定要匯總的各

數(shù)值字段,省略時將對數(shù)據(jù)庫中所有數(shù)值型字段進行匯總。統(tǒng)計生成的數(shù)據(jù)庫文件中的記錄個數(shù)為原數(shù)據(jù)庫文件對關(guān)鍵字段分類后的分類,記錄是關(guān)鍵字相同的第一條記錄值,其中求和的數(shù)值型字段值為相同關(guān)鍵字的數(shù)值型字段的和。若求和的結(jié)果長度大于數(shù)值型字段的長度,則FoxPro系統(tǒng)會在這個字段上放入若干個“*”。為了避免這種情況發(fā)生,可用MODIFY

STRUTURE對原數(shù)據(jù)庫文件中要分類求和的字段的寬度先增加,然后再進行分類求和。3.5多重數(shù)據(jù)庫的操作3.5.1工作區(qū)的選擇工作區(qū)的概念

:專門在內(nèi)存中開辟的存儲區(qū),用來存放從磁盤上調(diào)入內(nèi)存的數(shù)據(jù)庫文件及其相關(guān)文件。在Foxpro中,最多可以同時打開255個數(shù)據(jù)庫文件,分別存放在255個工作區(qū)中.為了便于選擇,F(xiàn)oxpro為每個工作區(qū)規(guī)定一個代碼(1~255)作為各工作區(qū)的標識。用戶既可以通過工作區(qū)的代碼來選擇

工作區(qū),也可以使用A~J之間的字母或工作區(qū)中已打開的數(shù)據(jù)庫的別名來選擇。在Foxpro提供的多個工作區(qū)中,其中只有一個工作區(qū)的身分最高,稱之為當前工作區(qū),在該工作區(qū)中打開的數(shù)據(jù)庫稱為當前數(shù)據(jù)庫。訪問當前工作區(qū)中數(shù)據(jù)庫的字段時可以直接使用其字段名,而訪問其它工作區(qū)中數(shù)據(jù)庫的字段時必須使用“別名->字段名”或“別名.字段名”格式。2.工作區(qū)的選擇——SELECTFoxPro缺省的工作區(qū)為1號工作區(qū),利用SELECT命令可在255個工作區(qū)中選擇一個作為當前工作區(qū)。【格式】SELECT<數(shù)值表達式>|<字符表達式>【功能】選擇一個工作區(qū)作為當前工作區(qū)?!菊f明】⑴<數(shù)值表達式>和<字符表達式>分別用數(shù)字和字母或別名表示工作區(qū)的名稱,若<數(shù)值表達式>值為0,則選擇當前沒有使用的代碼最小的工作區(qū)作為當前工作區(qū)。⑵利用SELECT命令可以選擇多個工作區(qū),但當前工作區(qū)只有一個,即最后一次使用SELECT命令所選擇的那個工作區(qū)。⑶每個工作區(qū)都有自己獨立的記錄指針,所有改變記錄指針的命令只影響當前工作區(qū)中的數(shù)據(jù)庫文件。3.3.5.2多工作區(qū)下數(shù)據(jù)庫文件的打開與關(guān)閉1.多工作區(qū)下數(shù)據(jù)庫文件的打開在多工作區(qū)下打開一個數(shù)據(jù)庫文件的方法有二種:一是先選擇一個工作區(qū)為當前工作區(qū),然后在該工作區(qū)打開一個數(shù)據(jù)庫文件;二是不改變當前工作區(qū),直接指定在某一個工作區(qū)中打開某個數(shù)據(jù)庫文件。2

2.多工作區(qū)下數(shù)據(jù)庫文件的關(guān)閉利用USE命令只能關(guān)閉當前工作區(qū)中打開的數(shù)據(jù)庫文件,如果需要同時關(guān)閉所有工區(qū)中已打開的數(shù)據(jù)庫文件,可通過如下命令實現(xiàn)。⑴CLOSE

ALL|DATABASES【格式】CLOSE

ALL|DATABASES【功能】CLOSE

ALL為關(guān)閉所有類型的文件,并

置1區(qū)為當前工作區(qū)。CLOSE

DATABASES關(guān)閉所

有打開的數(shù)據(jù)庫文件、索引文件和格式文件,并⑵CLEAR

ALL【格式】CLEAR

ALL【功能】關(guān)閉所有打開的數(shù)據(jù)庫文件,并選擇當前工作區(qū)為1區(qū),同時關(guān)閉所有的索引文件、格式文件和備注文件。3.5.3數(shù)據(jù)庫的關(guān)聯(lián)【格式】SET

RELATION

TO[<表達式1>

INTO<數(shù)值表達式1>

|<字符表達式1>[,<表達式2>

INTO<數(shù)值表達式2>

|<字符表達式2>

...][ADDITIVE]]【功能】在兩個或兩個以上已打開的數(shù)據(jù)庫文件之間建立關(guān)聯(lián)?!菊f明】⑴<數(shù)值表達式1>,<數(shù)值表達式2>,…是用數(shù)字表示的工作區(qū)代碼。<字符表達式1>,<字符表達式

2>,…是用A~J之間的字母或數(shù)據(jù)庫的別名表示的工作區(qū)的名稱。⑵<表達式1>,<表達式2>,…為不同數(shù)據(jù)庫中所具有的共同字段(或共同字段表達式),它決定數(shù)據(jù)庫間的關(guān)聯(lián)方式。該命令中有以下二種關(guān)聯(lián)方式:①關(guān)鍵字方式這種關(guān)聯(lián)方式要求相關(guān)聯(lián)的數(shù)據(jù)庫文件中須包含

該關(guān)鍵字表達式,且被關(guān)聯(lián)的數(shù)據(jù)庫文件必須按

該關(guān)鍵字表達式建立索引。每當移動當前數(shù)據(jù)庫

的記錄指針時,系統(tǒng)自動檢索被關(guān)聯(lián)數(shù)據(jù)庫中與

此關(guān)鍵字表達式相同的第一條記錄。若檢索成功,則相關(guān)聯(lián)的數(shù)據(jù)庫記錄指針指向檢索到的第一條

記錄;如果檢索不成功,則記錄指針指向文件尾。②數(shù)值表達方式這種關(guān)聯(lián)方式是根據(jù)記錄號進行關(guān)聯(lián)的。每當移動當前數(shù)據(jù)庫的記錄指針時,與其關(guān)聯(lián)的數(shù)據(jù)庫的

記錄指針自動定位于記錄號等于該數(shù)值表達式值

的記錄。若當前數(shù)據(jù)庫文件的記錄號大于相關(guān)聯(lián)

的數(shù)據(jù)庫文件的記錄號,則記錄指針指向文件尾,且EOF()函數(shù)返回.T.。⑶當一次所要關(guān)聯(lián)的數(shù)據(jù)庫超過一個以上時,需要使用ADDITIVE選項。⑷利用SET

RELATION

OFF

INTO<別名>命令可以清除兩個數(shù)據(jù)庫之間的關(guān)聯(lián)。3.5.4數(shù)據(jù)庫的連接【格式】JOIN

WITH

<數(shù)值表達式>

|

<字符表達式>TO

<新庫文件> FOR

<邏輯表達式>[FIELDS

<字段列表>]

[NOOPTIMIZE]【功能】將兩個工作區(qū)中已打開的數(shù)據(jù)庫文件,按照指定的條件進行連接,生成一個新的數(shù)據(jù)庫文件。【說明】⑴連接時,首先將記錄指針指向當前數(shù)據(jù)庫的第一條記錄,并順序檢索被連接數(shù)據(jù)庫(或別名數(shù)據(jù)

庫)中的每條記錄,若<邏輯表達式>為.T.,則在新數(shù)據(jù)庫文件中生成一條記錄。然后將記錄指針

指向當前數(shù)據(jù)庫的第二條記錄,并重復(fù)上述過程,直到當前數(shù)據(jù)庫文件中所有記錄均處理完畢為止。⑵如果使用FIELDS<字段列表>選項,則只有<字段列表>中的字段才放到新數(shù)據(jù)庫文件中,省略時則包括當前數(shù)據(jù)庫中的所有字段和別名數(shù)據(jù)庫中的全部字段。⑶被連接的數(shù)據(jù)庫文件中的字段應(yīng)用“別名-字段”或“別名.字段”來表示。3.5.5數(shù)據(jù)庫的更新【格式】UPDATE

ON

<關(guān)鍵字段名>

FROM

<數(shù)值表達式>

|

<字符型表達式> REPLACE

<字段1>WITH

<表達式1>

[,

<字段2>

WITH

<表達式2>

...][RANDOM]【功能】用FROM指定的工作區(qū)中的數(shù)據(jù)庫文件的數(shù)據(jù)來更新當前數(shù)據(jù)庫文件中的數(shù)據(jù)?!菊f明】⑴UPDATE命令是按照<關(guān)鍵字段名>來更新的,因

此兩個數(shù)據(jù)庫文件必須具有相同的<關(guān)鍵字段名>。⑵被更新的數(shù)據(jù)庫文件必須在當前工作區(qū)中打開,別名數(shù)據(jù)庫文件必須在其它工作區(qū)中打開。⑶如果別名數(shù)據(jù)庫中有多條記錄滿足條件,則只有第一條記錄起作用。⑷當要更新的數(shù)據(jù)庫中關(guān)鍵字段值相同的記錄有多條時,僅修改第一條記錄。⑸如果省略RANDOM選項,則兩個數(shù)據(jù)庫必須事先按<關(guān)鍵字段名>進行排序或建立索引。否則,只要求被修改的數(shù)據(jù)庫文件按此關(guān)鍵字段排序或建立索引,而FROM后面的別名數(shù)據(jù)庫文件則不需要。⑹當<表達式1>,<表達式2>,…中含有別名數(shù)據(jù)庫中的字段時,必須使用“別名->字段”或“別名.字段”形式。3.6

數(shù)據(jù)庫文件及其結(jié)構(gòu)的復(fù)制數(shù)據(jù)庫文件的復(fù)制【格式】COPY

TO<文件>[FIELDS<字段列表>][<范圍>]

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論