VF-數(shù)據(jù)庫和數(shù)據(jù)表_第1頁
VF-數(shù)據(jù)庫和數(shù)據(jù)表_第2頁
VF-數(shù)據(jù)庫和數(shù)據(jù)表_第3頁
VF-數(shù)據(jù)庫和數(shù)據(jù)表_第4頁
VF-數(shù)據(jù)庫和數(shù)據(jù)表_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四

章數(shù)據(jù)庫和數(shù)據(jù)表的操作

本章要點介紹VFP數(shù)據(jù)庫(表)的概念,并介紹如何利用表設計器或表向導建立數(shù)據(jù)庫中的表和自由表的方法和步驟,著重講解對數(shù)據(jù)表的各種操作,包括創(chuàng)建數(shù)據(jù)(庫)表、修改表結構、輸入(修改)數(shù)據(jù)、添加(插入)記錄、刪除記錄等對數(shù)據(jù)表日常維護的基本操作。學完本章內容,應掌握如下內容:

要求弄清數(shù)據(jù)庫和數(shù)據(jù)表的概念;會建立數(shù)據(jù)庫中的表和自由表;熟練掌握數(shù)據(jù)表日常維護的基本操作;記住常用命令和講過的函數(shù)且會正確使用。

目錄4.1VFP數(shù)據(jù)庫及表的概念4.2數(shù)據(jù)表結構的建立、顯示與修改4.3數(shù)據(jù)表的基本操作4.4索引文件與應用4.5數(shù)據(jù)表的統(tǒng)計計算4.6多數(shù)據(jù)表操作4.7管理數(shù)據(jù)庫4.8數(shù)據(jù)轉換4.1.1數(shù)據(jù)庫及表的概念4.1.2建立數(shù)據(jù)庫和表的準備工作4.1VFP數(shù)據(jù)庫及數(shù)據(jù)表4.1.1數(shù)據(jù)庫及表的概念數(shù)據(jù)庫與數(shù)據(jù)表數(shù)據(jù)庫文件的擴展名為.dbcVFP中數(shù)據(jù)庫管理的文件有:表、查詢、遠程視圖、本地視圖、存儲過程和連接文件。在數(shù)據(jù)庫中用戶可以在數(shù)據(jù)表創(chuàng)建字段、記錄驗證,觸發(fā)器和默認值等。這些信息存儲于數(shù)據(jù)庫中,也就是保存在數(shù)據(jù)字典(.DCT)中,它是創(chuàng)建數(shù)據(jù)庫文件時系統(tǒng)自動生成的相應文件。數(shù)據(jù)字典是一個記錄數(shù)據(jù)庫中所有信息的表。4.1.1數(shù)據(jù)庫及表的概念數(shù)據(jù)表是一組相關數(shù)據(jù)的有序集合,是我們日常工作中常用到的二維表格。數(shù)據(jù)表是VFP處理數(shù)據(jù)、創(chuàng)建關系數(shù)據(jù)庫和應用的最基本單元。大多數(shù)命令都是針對數(shù)據(jù)表操作的,例如索引、查詢等??梢詫Υ鎯υ诒碇械臄?shù)據(jù)進行瀏覽、修改等操作,也可以創(chuàng)建新表來存儲數(shù)據(jù)。表3-1是某單位的一個人事檔案信息表,它記錄了該單位職工的一些基本情況。4.1.1數(shù)據(jù)庫及表的概念

編號姓名性別工作時間職稱簡歷照片05002苗莉女1963.07.01

04002林文靈男1963.09.02教授04001姜瑞青男1984.09.03教授01001韓偉東男1985.09.04

03001王為冬男1988.07.05副教授02002賈貴紅女1988.09.06主治醫(yī)師02001劉巧玲女1993.09.07

01002張小鵬男1995.09.08

03002宋紹明男1996.03.09講師03003邵林文賀女1996.05.10副教授05001馬超頻男1996.12.11講師VFP是關系型數(shù)據(jù)庫管理系統(tǒng),它的數(shù)據(jù)表就是規(guī)則的二維表。二維表的一行稱為一個記錄(表3-1中共有11個記錄)。一列稱為一個字段(該表共有8個字段),每個字段是同一種類型的數(shù)據(jù)集合,這是數(shù)據(jù)表中不可分割的基本項。只要確定了這些字段,就確定了整個數(shù)據(jù)表的結構(即二維表格的表頭)。

4.1.1數(shù)據(jù)庫及表的概念

4.1.1數(shù)據(jù)庫及表的概念數(shù)據(jù)表名主文件名中可以使用漢字、字母、數(shù)字、下劃線及它們的組合,支持長文件名,但文件名中不可以使用空格、*或?號等。擴展名取缺省值:.DBF。因為系統(tǒng)已經設定了A、B、C、…、J十個單字母和W11、W12、W13、…、W32767作為數(shù)據(jù)庫工作區(qū)的別名,所以不要用它們作為數(shù)據(jù)庫名或數(shù)據(jù)表名,否則會引起操作上的錯誤。

4.1.1數(shù)據(jù)庫及表的概念數(shù)據(jù)表結構在創(chuàng)建數(shù)據(jù)表時,首先要確定數(shù)據(jù)表的結構,然后才輸入數(shù)據(jù)(形成一條條記錄)。數(shù)據(jù)表的結構包括:字段名、字段類型、字段寬度、小數(shù)位數(shù)及是否允許NULL(空)值等內容。字段名又稱為字段變量,命名規(guī)則與內存變量相同。自由表的字段名最長為10個字符(最多5個漢字),數(shù)據(jù)庫表中的字段名可以最多是128個字符。在VFP運行期間,許多操作都是通過字段名來訪問這個字段的。同一個數(shù)據(jù)表中,不能有兩個相同的字段名存在。

4.1.1數(shù)據(jù)庫及表的概念數(shù)據(jù)表結構在創(chuàng)建數(shù)據(jù)表時,首先要確定數(shù)據(jù)表的結構,然后才輸入數(shù)據(jù)(形成一條條記錄)。數(shù)據(jù)表的結構包括:字段名、字段類型、字段寬度、小數(shù)位數(shù)及是否允許NULL(空)值等內容。字段名又稱為字段變量,命名規(guī)則與內存變量相同。自由表的字段名最長為10個字符(最多5個漢字),數(shù)據(jù)庫表中的字段名可以最多是128個字符。在VFP運行期間,許多操作都是通過字段名來訪問這個字段的。同一個數(shù)據(jù)表中,不能有兩個相同的字段名存在。

4.1.1數(shù)據(jù)庫及表的概念字段類型和字段寬度:每一項數(shù)據(jù)都有固定的類型,每一個字段中的數(shù)據(jù)必須是同一種數(shù)據(jù)類型。數(shù)據(jù)類型定義了該種數(shù)據(jù)的表示方法、取值范圍、所能進行的運算。在VFP數(shù)據(jù)表中,字段的數(shù)據(jù)類型共有13種,但是,有些字段類型并不常用。常用字段類型主要包括:字符型(C型)、數(shù)值型(N型)、貨幣型(Y型)、日期型(D型)、邏輯型(L型)、備注型和通用型。

4.1.1數(shù)據(jù)庫及表的概念小數(shù)位數(shù)

:只對數(shù)值型和浮動型數(shù)據(jù)有效。小數(shù)位的取值范圍為0~15。NULL值:該屬性指定記錄中是否允許輸入NULL(空)值。注意:NULL值與空格、空字符串或0是不同的。

4.1.1數(shù)據(jù)庫及表的概念VFP中數(shù)據(jù)表的兩種存在方式:單獨的一個數(shù)據(jù)表,我們稱之為自由表(FreeTable);自由表是擴展名為.DBF的文件,它不與任何數(shù)據(jù)庫相關聯(lián),獨立存在,主要是與VFP以前的版本兼容。

存在于數(shù)據(jù)庫中的表,我們稱之為數(shù)據(jù)庫表(DatabaseTable),數(shù)據(jù)庫中的表的擴展名雖然也是.DBF,但是,它與某一個數(shù)據(jù)庫相關聯(lián)(也只能和唯一數(shù)據(jù)庫相關聯(lián))。

4.1.1數(shù)據(jù)庫及表的概念數(shù)據(jù)庫中的表可以有一些自由表所沒有的特性,例如:字段驗證和記錄驗證、觸發(fā)器、永久關系等,在VFP中還增加了格式、輸入顯示掩碼和匹配字段類型到類等屬性。這兩種類型的數(shù)據(jù)表建立的方式大同小異,只是DatabaseTable需設定較多的屬性。若建立的是自由表,利用數(shù)據(jù)庫工具,可將自由表納入某個數(shù)據(jù)庫中,就成為數(shù)據(jù)庫表了。

4.1.2建立數(shù)據(jù)庫及表的準備工作

確定數(shù)據(jù)庫的組織結構一個應用系統(tǒng)包含很多數(shù)據(jù),為了便于管理和避免數(shù)據(jù)冗余,在建立數(shù)據(jù)庫和數(shù)據(jù)表時,應確定應用系統(tǒng)中的數(shù)據(jù)有哪些,這些數(shù)據(jù)應存放到幾個表中,每個表應包含那些數(shù)據(jù)等。

數(shù)據(jù)規(guī)范化將日常生活中的不規(guī)則表格改造為規(guī)則的二維表,根據(jù)規(guī)范化原則設計數(shù)據(jù)庫的總體結構和各個數(shù)據(jù)表的結構。

4.1.2建立數(shù)據(jù)庫及表的準備工作

確立數(shù)據(jù)表的結構數(shù)據(jù)表的結構設計包括字段名設計、字段類型確定、字段寬度和小數(shù)位數(shù)的確定等,一般遵循:(1)

C型:文字性質的內容以及不參與運算的數(shù)字性質內容的字段;字符較多的定義為M型(2)N型:參與運算的數(shù)字性質內容的字段。

(3)

D型:日期性質內容的字段(4)

L型:內容為二者之一的字段(5)

G型:內容為OLE對象的字段4.2.1建立數(shù)據(jù)庫4.2.2建立數(shù)據(jù)表結構4.2.3數(shù)據(jù)表結構的修改4.2.4數(shù)據(jù)表結構的顯示4.2數(shù)據(jù)表結構的建立、修改和顯示

4.2.1建立數(shù)據(jù)庫

建立數(shù)據(jù)庫數(shù)據(jù)庫是一種工作環(huán)境,它存儲了數(shù)據(jù)表的集合,可以在數(shù)據(jù)表中建立關系,對數(shù)據(jù)字段設置屬性和規(guī)則,從而保證表之間的數(shù)據(jù)完整性。我們先建立一個以“人事管理數(shù)據(jù)庫”為名的數(shù)據(jù)庫文件。

在項目管理器中建立數(shù)據(jù)庫文件選中項目管理器—“全部”或“數(shù)據(jù)”選項卡—“數(shù)據(jù)庫”選項,單擊“新建”按鈕出現(xiàn)“創(chuàng)建”對話框,在“保存在”選擇數(shù)據(jù)庫存放的文件夾(這里選默認工作目錄D:\人事管理),在“數(shù)據(jù)庫名”處填上“人事管理數(shù)據(jù)庫”(默認為數(shù)據(jù)1),再單擊“保存”按鈕,一個空數(shù)據(jù)庫就創(chuàng)建完畢。

4.2.1建立數(shù)據(jù)庫

利用菜單建立數(shù)據(jù)庫文件單擊菜單中“文件”里的“新建”命令(或單擊工具欄上的“新建”按鈕),出現(xiàn)“新建”對話框,選擇“數(shù)據(jù)庫”單選按鈕,再單擊“新建文件”,出現(xiàn)“創(chuàng)建”對話框,其余通上。利用命令創(chuàng)建數(shù)據(jù)庫【格式】CREATEDATABASE[<數(shù)據(jù)庫名>|?]【功能】用來創(chuàng)建一個數(shù)據(jù)庫文件。

4.2.1建立數(shù)據(jù)庫【說明】①選CREATE而不選可選項或選?,都是打開一個“創(chuàng)建”對話框,在此為數(shù)據(jù)庫輸入一個名字并保存;若選<數(shù)據(jù)庫名>,即在命令中就創(chuàng)建數(shù)據(jù)庫文件,不加路徑為當前目錄,缺省擴展名為.DBC。②建立的數(shù)據(jù)庫文件不屬于任何一個項目③建立數(shù)據(jù)庫文件后還須用modifydatabase命令打開數(shù)據(jù)庫設計器

4.2.1建立數(shù)據(jù)庫打開數(shù)據(jù)庫在項目管理器中打開選擇要打開的數(shù)據(jù)庫文件,單擊“修改”按鈕。用菜單方式打開

“文件”菜單—“打開”—找到打開的數(shù)據(jù)庫文件(*.dbc)利用命令打開

【格式】OPEN|MODIFYDATABASE[<數(shù)據(jù)庫名>|?][EXCLUSIVE]【功能】打開編輯一個數(shù)據(jù)庫文件。

4.2.1建立數(shù)據(jù)庫【說明】①

不選可選項或選?,是打開一個“打開”對話框,找到欲打開編輯的數(shù)據(jù)庫文件。若選<數(shù)據(jù)庫名>,即在命令中就打開一個數(shù)據(jù)庫,不加路徑為當前目錄,缺省擴展名為.DBC。

若用OPEN命令打開一個數(shù)據(jù)庫,還可以選EXCLUSIVE(CREATE和MODIFY不能選),該項表示以獨占的方式打開該庫,其他用戶不能訪問,否則將會出錯。③使用open命令打開數(shù)據(jù)庫文件后還須用modifydatabase命令才能顯示數(shù)據(jù)庫設計器。

4.2.1建立數(shù)據(jù)庫關閉數(shù)據(jù)庫

【格式】CLOSEDATABASE|ALL【功能】選ALL將關閉所有區(qū)打開的所有數(shù)據(jù)庫文件及其數(shù)據(jù)表、自由表以及各類文件。選DATABASE只關閉當前打開的數(shù)據(jù)庫文件及其數(shù)據(jù)表、自由表。可以用函數(shù)DBC()來測試當前目錄下所打開的數(shù)據(jù)庫名,用DBF()測試當前打開的數(shù)據(jù)表名。

4.2.2建立數(shù)據(jù)表結構數(shù)據(jù)表是存放數(shù)據(jù)的實體。是由結構和數(shù)據(jù)(記錄)組成的。建立數(shù)據(jù)表要先創(chuàng)建數(shù)據(jù)表結構,然后再輸入數(shù)據(jù)。創(chuàng)建數(shù)據(jù)表的結構有三種方法:一是利用表設計器來創(chuàng)立,二是利用表向導來快速建立,三是利用命令方式建立。建立的數(shù)據(jù)表可以是不屬于任何數(shù)據(jù)庫的自由表,也可以是數(shù)據(jù)庫中的一個新表。若要在某數(shù)據(jù)庫中創(chuàng)建一張新表,則首先打開該數(shù)據(jù)庫,此后創(chuàng)建的數(shù)據(jù)表自然就屬于該數(shù)據(jù)庫的數(shù)據(jù)表。也可以不打開任何數(shù)據(jù)庫文件,所創(chuàng)建的表就是自由表。

4.2.2建立數(shù)據(jù)表結構利用表設計器建立數(shù)據(jù)表結構在項目管理器中新建項目—“數(shù)據(jù)庫”—“表”—單擊“新建”按鈕項目—“數(shù)據(jù)庫”—單擊“修改”按鈕—數(shù)據(jù)庫設計器—“新建表”。出現(xiàn)“創(chuàng)建”對話框,輸入表名,“確定”后即可打開表設計器。用菜單方式打開“文件”菜單—“新建”—選擇“表”—“新建文件”—同上

4.2.2建立數(shù)據(jù)表結構利用命令打開

creat<表文件名>說明:菜單方式和命令方式創(chuàng)建表時,若一個數(shù)據(jù)庫已經打開,則新建的表自動加到數(shù)據(jù)庫中;否則為自由表。人事檔案信息表是一個典型的二維表格。這里的字段名、類型、寬度分別?。壕幪朇(5)、姓名C(8)、性別C(2)、工作時間D、職稱C(8)、簡歷M、照片G,每個記錄都包含這些字段。依次將各個字段的字段名、類型、寬度、小數(shù)位數(shù)輸入到“字段”標簽中的相應位置。

4.2.2建立數(shù)據(jù)表結構設置數(shù)據(jù)庫表的字段屬性和表屬性設置字段屬性:

表設計器的下半部分有四個區(qū)域:顯示、匹配字段類型到類、設置字段有效性、字段注釋等項??梢栽诖嗽O置字段驗證。如果你是創(chuàng)建了一個自由表,那么在打開的表設計器中就沒有下半部分。這也是數(shù)據(jù)庫表與自由表的區(qū)別之一。

4.2.2建立數(shù)據(jù)表結構設置顯示區(qū)域:用于指定輸入和顯示字段的格式屬性。格式屬性:格式屬性是可編輯字段或變量類的通用屬性,在VFP面向對象程序設計命令格式中使用。如,將某一字段的格式屬性設置為“!"(兩個英文雙引號不可缺省),則VFP會將輸入該字段的小寫字母全部轉換為大寫字母。輸入掩碼屬性:指定字段中輸入字符的格式。例如,有一個“電話號碼”字段,設置該字段輸入掩碼屬性為(9999)-9999999,則在輸入數(shù)據(jù)05321234567,自動顯示格式為:(0532)-1234567(此時字段寬度應設置為14)。標題屬性:為字段名取一個標題。指定在瀏覽窗口、表單或報表中代表字段的標簽。

4.2.2建立數(shù)據(jù)表結構

匹配字段類型到類:用于指定默認控件類。當數(shù)據(jù)表被加到表單上時,此字段自動用這里所指定的控件類對象為輸入輸出控件。用一個簡單的例子說明:例如一個字符型字段,此處指定一個文本框(Text)控件類,則當該字段添加到表單上時,自動用所指定類庫中的文本框類來派生一個文本框對象作為此字段的綁定控件(參見第八章)。顯示庫:指定類庫的路徑和文件名。顯示類:指定字段默認的控件類。

4.2.2建立數(shù)據(jù)表結構

字段有效性:在創(chuàng)建數(shù)據(jù)表的結構時,可以通過創(chuàng)建字段的有效性來控制數(shù)據(jù)庫表字段和記錄中的數(shù)據(jù)合法性,這些規(guī)則就是有效性規(guī)則。一旦在數(shù)據(jù)庫表中建立了有效性規(guī)則,那么在向該表輸入數(shù)據(jù)時,系統(tǒng)會自動將輸入的值和所定義的規(guī)則表達式進行比較,如果輸入的值不滿足規(guī)則的要求,則該輸入數(shù)據(jù)不會被存入表中,增加了數(shù)據(jù)的可靠性。有效性規(guī)則對輸入到表中的信息的控制是全面的,無論數(shù)據(jù)是通過瀏覽窗口、表單,還是通過命令以編程的方式來訪問該表。有效性規(guī)則不僅可以限制輸入數(shù)據(jù)庫表中數(shù)據(jù)的類型,還可以限制輸入數(shù)據(jù)的取值范圍。

4.2.2建立數(shù)據(jù)表結構

字段注釋:輸入字段的說明。當在項目管理器中選擇了該字段時,會在項目管理器下方顯示該字段的說明內容?!八饕边x項頁在用表設計器建立表結構時,可以直接單擊“索引”項右端的下拉列表選擇該字段升、降序普通索引(有關索引的概念后面詳講)。

“索引”選項頁可以看到該表各字段的索引情況。

4.2.2建立數(shù)據(jù)表結構設置表屬性:單擊“表”選項頁時,表設計器可以顯示該表的一些基本信息和讓用戶設定記錄有效性驗證及觸發(fā)器。顯示的信息包括該表所屬的數(shù)據(jù)庫、表包含的字段數(shù)、表中現(xiàn)有的記錄數(shù)和表在磁盤上的路徑。“記錄有效性”驗證是在記錄更新時起作用,它可以控制輸入到表中的記錄數(shù)據(jù)滿足某種事先規(guī)定的規(guī)則。記錄有效性通常用來比較同一記錄中的兩個或多個字段的值,以確保它們滿足在數(shù)據(jù)庫中建立的某種規(guī)則。其功能與前面講過的字段有效性驗證有些相似,其設定方法也和字段有效性設定方法一樣。

4.2.2建立數(shù)據(jù)表結構“觸發(fā)器”也是用來設定一種規(guī)則,有來檢查表中數(shù)據(jù)有效性的機制之一,當有命令或操作改變了表中的記錄時,就會根據(jù)是插入記錄、更新記錄還是刪除記錄來觸發(fā)相應的觸發(fā)器中的表達式,利用該觸發(fā)器中的規(guī)則來對表記錄進行檢查。

表注釋

對表的信息進行說明。

4.2.2建立數(shù)據(jù)表結構利用向導建立表結構

VFP中的表向導是它提供的眾多向導之一。它能一步步地指導你建立出一些常用的表結構,這些常用的表結構或者是系統(tǒng)給定的一些“示例表”(或稱模板),或者是用戶已定義過的結構(添加到示例表中)。當用戶建立類似的表結構時,不必一個個字段重新定義,而是可以選取已存在表結構或示例表中的某些字段經過適當?shù)男薷摹⑻砑泳涂梢酝瓿山⒁粋€新的結構,以提高工作效率。現(xiàn)舉例介紹用表向導建立一個“人事管理信息表”表結構的過程。

編號C/5部門名C/10姓名C/8性別C/2出生日期D文化程度C/4職務C/8婚否L01001機關韓偉東男1960.10.10大專副處長T02001總務劉巧玲女1975.08.02高中工人F03001計算機系王為冬男1961.08.07碩士教師T04001數(shù)學系姜瑞青男1955.06.02博士教師T05001電子工程系馬超頻男1970.08.10碩士教師F05002電子工程系苗莉女1945.09.02中專教務員T03002計算機系宋紹明男1970.01.03碩士教師F03003計算機系邵林文賀女1966.05.04博士教師T02002總務賈貴紅女1965.03.08本科醫(yī)師T01002機關張小鵬男1972.03.05本科科長F04002數(shù)學系林文靈男1943.08.03本科教師T表3-2

人事管理信息表

rsgl.dbf

4.2.2建立數(shù)據(jù)表結構利用向導建立表結構的步驟如下:單擊菜單中“工具”中的“表向導”命令,出現(xiàn)“表向導步驟1-字段選取”對話框(或)……。項目—“數(shù)據(jù)庫”—“表”—單擊“新建”按鈕—選擇“向導”—同上。項目—“數(shù)據(jù)庫”—單擊“修改”按鈕—數(shù)據(jù)庫設計器—“新建表”選擇“向導”—同上。

“文件”菜單—“新建”—選擇“表”—“向導”—同上。利用表向導并不省事,但是若新建的表的結構和已有表結構完全相同或差別不大時,就顯示出“表向導”的便利了。

4.2.2建立數(shù)據(jù)表結構數(shù)據(jù)庫表和自由表的區(qū)別:

數(shù)據(jù)庫表比自由表多了許多功能。主要有如下:長表名和長字段名表中字段的標題和注釋字段的默認值插入、更新和刪除事件的觸發(fā)器字段驗證和記錄驗證

設定字段的顯示格式匹配字段類型到類可以在數(shù)據(jù)庫中設定表間的永久關系在索引中增加了主索引及主關鍵字自由表可以放在項目管理器中,也可以是不屬于任何一個項目管理器中的數(shù)據(jù)表。

4.2.3數(shù)據(jù)表結構的修改一個數(shù)據(jù)表結構建立好了以后,需要對表結構進行修改。修改表結構主要包括:修改字段名、字段類型、字段寬度、小數(shù)位數(shù)、插入(添加)一個字段、刪除一個字段、調換字段的順序等內容。表結構的修改在表設計器中進行,應先打開表設計器。有如下方法:.項目管理器—選擇表—“修改”按鈕數(shù)據(jù)庫設計器—選中表rsda,單擊右鍵,在其快捷菜單中選擇“修改”命令命令:Modifystructure

4.2.4數(shù)據(jù)表結構的顯示數(shù)據(jù)表結構建立以后,可以進入表設計器查看表的結構,也可以用命令的方式顯示表的結構。【格式】LIST|DISPLAYSTRUCTURE[IN<工作區(qū)號>|<表別名>][TOPRINTER

[PROMPT]|TOFILES<文件名>]【功能】顯示表的結構【說明】

①一般是先打開一個數(shù)據(jù)表,然后用此命令,否則系統(tǒng)給出打開對話框,打開一個表。

②TOFILES

子句表示將顯示輸出結果傳送給<文件名>所指定的磁盤文件。

4.2.4數(shù)據(jù)表結構的顯示③

TOPRINTER

子句表示將輸出直接定向到打印機。PROMPT選項表示在打印開始前顯示打印機對話框。在對話框中可以調整打印機設置。

LIST

和DISPLAY可以選擇任意一個,所不同的是:若字段很多,一頁顯示不下,LIST連續(xù)顯示信息直到顯示完為止;DISPLAY采用分頁顯示信息。即顯示一屏信息后暫停,按任意鍵或單擊鼠標就可以繼續(xù)顯示后面的內容。例如在命令窗口輸入以下命令:

USErsda

LISTSTRU

4.2.4數(shù)據(jù)表結構的顯示復制數(shù)據(jù)表的結構 如果要創(chuàng)建的數(shù)據(jù)表的結構與已有數(shù)據(jù)表的結構相同就直接復制;若相似可以先復制一個,然后再利用上述的方法修改,這樣可以大大提高工作效率。

【格式】COPYSTRUCTURETO<表文件名>[FIELDS<字段名表>][[WITH]CDX|[WITH]

PRODUCTION]【功能】復制打開的當前數(shù)據(jù)表的結構生成一個只有結構的自由表。【說明】①若不選可選項,生成的表結構具有原數(shù)據(jù)表相同的字段名、類型和寬度。②若選FIELDS子句,生成的表結構只有<字段名表>中的字段,字段名之間用逗號隔開。

③若選CDX或PRODUCTION(二者等價),將原表的復合索引標識也復制了,生成了同名的索引文件.CDX(假設原表已按某字段建立了索引),WITH可選可不選?!纠吭诿畲翱趫?zhí)行以下命令:

OPENDATA

人事管理

USErsda

COPYSTRUTOrsda1FIELDS姓名,工作時間,職稱

CDXUSErsda1

MODISTRU

4.2.4數(shù)據(jù)表結構的顯示4.3.1數(shù)據(jù)表的打開和關閉4.3.2記錄的輸入4.3.3記錄的瀏覽和顯示4.3.4記錄指針及其操作4.3.5記錄數(shù)據(jù)的修改4.3.6記錄的刪除和恢復4.3數(shù)據(jù)表的基本操作4.3.1數(shù)據(jù)表的打開和關閉打開數(shù)據(jù)表項目—“數(shù)據(jù)庫”—“表”—單擊“瀏覽”按鈕。數(shù)據(jù)工作期—“打開”。

“文件”菜單—“打開”—選擇表—“打開”。命令方式:【格式】USE[<表文件名>|?][IN<工作區(qū)號>|<表別名>][ALIAS<表別名>]

【功能】打開或關閉數(shù)據(jù)表件。4.3.1數(shù)據(jù)表的打開和關閉【說明】①如果選擇<文件名>,表示打開指定的數(shù)據(jù)表文件,如果在當前區(qū)已經打開了一個數(shù)據(jù)表,則系統(tǒng)先關閉已打開的數(shù)據(jù)表,然后再打開指定的表。②如果選擇?號,則系統(tǒng)會顯示一個“打開”對話框,讓用戶選擇一個表打開。③可以用IN子句指定工作區(qū)號,以便在非當前工作區(qū)中打開一個數(shù)據(jù)表文件。④用ALIAS子句為打開的表命名一個別名,若無此選項,原表名就是它的當然別名。

例:USErsglALIASgl4.3.1數(shù)據(jù)表的打開和關閉關閉數(shù)據(jù)表Use

關閉當前工作區(qū)中打開的表Clearall

關閉所有打開的數(shù)據(jù)庫及表,釋放內存變量,選擇第1工作區(qū)。Closeall

關閉所有打開的數(shù)據(jù)庫及表,設計器和項目管理器,選擇第1工作區(qū)。Closedatabase

關閉當前打開的數(shù)據(jù)庫及表,選擇第1工作區(qū)。Closetables

關閉當前數(shù)據(jù)庫中所有的表。Quit

退出vfp,關閉所有的數(shù)據(jù)庫及表等。4.3.2記錄的輸入在用表設計器創(chuàng)建好表結構后,就可以為數(shù)據(jù)表輸入數(shù)據(jù)記錄了。輸入數(shù)據(jù)記錄有兩種情況:第一種情況是當建立好數(shù)據(jù)表結構后,立即輸入紀錄第二種情況是在建立好數(shù)據(jù)表結構后并沒有輸入紀錄,或僅輸入了部分紀錄,如果需要輸入紀錄,可進行紀錄的追加。4.3.2記錄的輸入記錄的輸入在用表設計器創(chuàng)建好表結構后,點擊“確定”。按鈕,出現(xiàn)下列對話框:單擊“是”按鈕,在隨即出現(xiàn)的窗口中輸入數(shù)據(jù)。4.3.2記錄的輸入在輸入數(shù)據(jù)時應注意下列問題:若輸入數(shù)據(jù)的寬度正好是字段寬度,光標自動移到下一個字段,若輸入的數(shù)據(jù)未填滿寬度或不輸入數(shù)據(jù),則按回車鍵,光標移到下一個字段處。備注型字段的輸入是雙擊memo,或按Ctrl+PageUp(PageDown)鍵。

通用型字段的輸入是雙擊gen,或按Ctrl+PageUp(PageDown)鍵。通用型數(shù)據(jù)的輸入一般使用插入對象的方法來插入數(shù)據(jù),或者使用剪貼板剪切、粘貼的方法。用編輯菜單中的“清除”來清除通用型字段的內容。4.3.2記錄的輸入在輸入數(shù)據(jù)時應注意下列問題:如果需要向一個字段輸入空值(NULL),則必須使用組合鍵:CTRL+0,或者輸入“.NULL.”。

輸入過程中可隨時移動插入點進行修改,所有要輸入的數(shù)據(jù)記錄輸入完畢后,單擊窗口右上角的關閉按鈕“×”或按Ctrl+W退出輸入數(shù)據(jù)狀態(tài)。若放棄剛剛輸入數(shù)據(jù)的記錄,則按Esc鍵或Ctrl+Q。備注型字段和通用型字段的內容都被保存在一個與數(shù)據(jù)表同名,擴展名為.FPT的文件中。4.3.2記錄的輸入記錄追加:若建立好一個數(shù)據(jù)表結構后,沒有立即輸入記錄,或已經輸入了一些記錄,還要在該數(shù)據(jù)表后面追加其它記錄時,可以菜單方式和命令方式完成:菜單方式:打開數(shù)據(jù)表,單擊“顯示”—“瀏覽”,出現(xiàn)瀏覽窗口。單擊“顯示”—“追加方式”命令或單擊“表”—“追加新記錄”命令;在最后一個記錄的后面新增一條空白記錄,等待著用戶輸入數(shù)據(jù),就像前面輸入記錄的方法一樣。4.3.2記錄的輸入命令方式:【格式1】APPEND[BLANK][IN<工作區(qū)號>|<表的別名>]【功能】

在打開的當前表或指定的工作區(qū)中的表尾追加若干條記錄或一條空記錄。【說明】

①不選任何可選項,可以追加若干條記錄;②選BLANK只能在尾部添加一條空白記錄。這在程序中經常用到,以便用程序的方式自動添加數(shù)據(jù)。

4.3.2記錄的輸入【格式2】

INSERTINTO表名(字段名1,字段名2,…)VALUES(表達式1,表達式2,…)【功能】

在打開的當前表中的表尾追加一條新記錄,并直接輸入記錄數(shù)據(jù)。4.3.2記錄的輸入從其它數(shù)據(jù)表文件中追加記錄:我們也可以將已存在的數(shù)據(jù)表中的記錄追加到當前表中。注意:被追加的數(shù)據(jù)表中的字段至少要有一個與當前表的字段同名、同類型,否則一條記錄也不能被添加。若當前表中的字段多于被追加的表則多出的字段數(shù)據(jù)空著;若被追加的表的字段多于當前表,則多出的字段被截去。4.3.2記錄的輸入菜單方式:先打開要追加記錄的表,在瀏覽窗口狀態(tài)下顯示記錄,選擇“表”菜單—“追加記錄”,彈出“追加來源”對話框。在類型欄中選擇“Table(DBF)”,要求從數(shù)據(jù)表中添加記錄。在“來源于”欄中輸入被追加的表的路徑,也可以單擊“來源于”右側的,在彈出的窗口中選擇相應的文件夾和文件名。單擊“確定”按鈕。若追加滿足某些條件的記錄,則單擊“選項”按鈕,彈出“追加來源選項”對話框。單擊“字段”彈出選擇被追加的字段對話框;單擊“For”,彈出表達式生成器對話框,輸入關系表達式后,則只追加使表達式為真的記錄。

4.3.2記錄的輸入命令方式:【格式】APPENDFROM<文件名>|?[FIELDS<字段名表>][FOR<條件表達式>]【功能】將<文件名>指定的表中的記錄追加到當前打開的數(shù)據(jù)表中?!菊f明】命令執(zhí)行前要打開目的表。選?打開對話框,選擇相關的文件。FIELDS短語指定追加哪些字段,F(xiàn)OR短語用來指定滿足條件的記錄被追加。不選FOR,是將所有記錄添加到當前數(shù)據(jù)表中。

例如:USErsda

APPENDFROMa:\lsfields編號,性命for職稱=“講師”

LIST4.3.2記錄的輸入命令方式:由于通用字段用于存儲OLE對象,和其他字段不同,因此需要用特殊的命令:

APPENDGENERAL<通用字段名>FROM<對象的文件名.擴展名>使用上述命令,要將指針指向當前記錄,這樣才能將指定的對象輸入到通用字段中去。例如:USErsda

APPENDgeneral

照片fromd:\data\zp.bmp4.3.3記錄的瀏覽和顯示瀏覽窗口中顯示記錄:瀏覽模式是一行顯示一條記錄。它將字段名顯示在窗口的上面,所以一屏可以顯示多條記錄。操作如下:

項目—“數(shù)據(jù)庫”—“表”—單擊“瀏覽”按鈕。數(shù)據(jù)庫設計器—選擇表—快捷菜單“瀏覽”數(shù)據(jù)工作期—“瀏覽”。

打開表,“顯示”菜單—“瀏覽”。命令方式:4.3.3記錄的瀏覽和顯示命令方式:【格式】BROWSE[FIELDS<字段名表>][FOR<條件>][FREEZE<字段名>][LOCK<字段序號>][NOAPPEND][NODELETE][NOEDIT][NOMODIFY]【功能】在瀏覽窗口顯示表?!菊f明】[FIELDS<字段名表>]設置顯示字段[FOR<條件>]設置顯示選擇條件[FREEZE<字段名>]可以編輯的字段[LOCK<字段序號>]鎖定到的字段序號其他設置窗口操作狀態(tài)4.3.3記錄的瀏覽和顯示編輯狀態(tài):

這種顯示模式如同記錄輸入時的格式。它將字段名顯示在窗口的左面,以一橫行顯示為一個字段,每個記錄依次接連顯示。可以利用菜單中“顯示”—“編輯”命令轉換為該顯示模式。

4.3.3記錄的瀏覽和顯示列表方式顯示記錄:【格式】LIST|DISPLAY[[FIELDS]<字段名表>]

[<范圍>][FOR<條件表達式1>][WHILE<條件表達式2>]

[OFF][TOPRINTER[PROMPT]|TOFILES<文件名>]【功能】在VFP主窗口顯示當前打開的數(shù)據(jù)表的記錄?!菊f明】

[FIELDS]<字段名表>指定要顯示的字段,字段名之間用逗號分隔,其中FIELDS可選可不選。若缺省該項,顯示表中除備注字段、通用字段外的所有字段。4.3.3記錄的瀏覽和顯示【說明】

②若備注型和通用型字段中有數(shù)據(jù),顯示Memo或Gen,否則顯示memo或gen。若在字段名表中指定備注字段名,也可以顯示其內容,但是通用型字段不能顯示。

③<范圍>和<條件>短語是只顯示范圍內滿足條件的記錄。相當于記錄過濾器。④選OFF時,只顯示記錄內容而不顯示記錄號。⑤LIST和DISPLAY的區(qū)別有兩點:一是若范圍和條件短語均缺省,LIST顯示所有記錄,DISPLAY顯示當前記錄;二是若記錄很多,一頁顯示不下,LIST連續(xù)顯示,DISPLAY分頁顯示。4.3.3記錄的瀏覽和顯示【例】

USErsda

LISTLIST姓名,簡歷

LISTOFF

LISTFOR性別="女"

DISPLAY

DISPLAYALL

LISTFOR性別="男"

FIELDS姓名,性別,簡歷

4.3.3記錄的瀏覽和顯示顯示部分紀錄和字段

當數(shù)據(jù)表中的字段個數(shù)非常多且記錄個數(shù)也很多時,如果僅對表中某些記錄進行一系列操作,可以通過VFP提供的過濾器先設置過濾條件,只對滿足條件的記錄操作,免去了在各命令中一次次使用范圍和FOR短語的麻煩。

記錄過濾器(菜單方式):①

打開表,處于瀏覽狀態(tài)下。②單擊菜單中“表”下的“屬性”命令,出現(xiàn)對話框。

③單擊“數(shù)據(jù)過濾器”右面的按鈕,在表達式生成器中完成過濾條件,然后按下“確定”。4.3.3記錄的瀏覽和顯示記錄過濾器(命令方式):【格式】SETFILTERTO

[<條件表達式>]【功能】設置當前表中訪問記錄的過濾條件?!菊f明】不選可選項是取消過濾條件。選擇條件表達式,則只對滿足條件的那些記錄進行操作?!纠纭?/p>

USErsda

SETFILTERTO

性別="男"

LISTSETFILTERTO

LIST

4.3.3記錄的瀏覽和顯示字段過濾器(菜單方式):若表中的字段很多,只想對表中的部分字段進行操作,方法如下:①打開表,處于瀏覽狀態(tài)下。②單擊“表”菜單—“屬性”,出現(xiàn)對話框。

③選擇“字段篩選指定的字段”后,單擊“字段篩選”,在字段選擇器對話框中選擇字段,單擊確定后,返回工作區(qū)屬性對話框。單擊確定。4.3.3記錄的瀏覽和顯示字段過濾器(命令方式):【格式】SETFIELDSTO

[<字段名表>][ON|OFF][ALL]【功能】設置當前表中訪問字段的過濾條件。【說明】不選可選項是不訪問任何字段。[OFF]取消字段過濾,[ON]恢復字段過濾,[ALL]訪問所有字段。4.3.4記錄指針及其操作

打開一個數(shù)據(jù)表后,系統(tǒng)為它設有一個記錄指針,記錄指針總是指向數(shù)據(jù)表的某一記錄或數(shù)據(jù)表的首尾。當前記錄記錄指針在某一時刻只能指向某一記錄或數(shù)據(jù)表的首尾,當記錄指針指向某一記錄時,該記錄就稱為當前記錄。

當前記錄關系到字段變量的取值以及許多命令的執(zhí)行。打開一個數(shù)據(jù)表后,指針指向第一個記錄(假設沒有指定索引標記),隨著命令的執(zhí)行,指針不斷移動。指針的定位可以利用菜單操作,但在程序中只能使用命令來定位。常用RECNO()函數(shù)判斷當前記錄指針的位置。4.3.4記錄指針及其操作記錄指針的定位菜單方式:打開數(shù)據(jù)表,處于瀏覽狀態(tài);

單擊“表”菜單—“轉到記錄”,出現(xiàn)級聯(lián)菜單。

“第一個”:是將指針指向第一個記錄;

“最后一個”:是指向最后一個記錄;

“下一個”和“上一個”是指向當前記錄的下、上一個記錄;

“記錄號”彈出對話框讓用戶輸入一個記錄號,指針就指向該記錄號的記錄;

“定位”是根據(jù)輸入的條件使指針定位在滿足條件的記錄上。4.3.4記錄指針及其操作操作方式:在瀏覽窗口用鼠標或鍵盤移動插入點時就是對記錄進行定位,窗口左側的按鈕上有一個黑三角。命令方式:使用命令可以使記錄指針絕對定位和相對定位。

4.3.4記錄指針及其操作⑴絕對定位:

絕對定位就是不考慮當前指針的位置,直接將指針移動到指定的記錄號?!靖袷揭弧縂O|GOTO

TOP|BOTTOM[IN<工作區(qū)號>|<表的別名>]【格式二】[GO|GOTO]<數(shù)值表達式>[IN<工作區(qū)號>|<表的別名>]【功能】將指針定位到指定的記錄上。4.3.4記錄指針及其操作【說明】

GO、GOTO可任選一種,作用等價。

TOP

是將記錄指針定位在第一條記錄上,此時BOF()為.F.;

BOTTOM是定位在最后一個記錄上。此時EOF()為.F.,

④格式二中的GO或GOTO可選可不選,為了增強可讀性,一般選GO,數(shù)值表達式的值就是記錄號。

⑤當記錄指針移到第一條記錄之前時,BOF()才為.T.,但此時記錄號函數(shù)RECNO()

的值仍為1;當記錄指針移到最后一條紀錄之后時,EOF()才為.T.,此時RECNO()為當前表最大記錄號加1。4.3.4記錄指針及其操作⑵指針的相對移動

相對定位就是在當前記錄指針位置的基礎上,將指針向上或向下移動?!靖袷揭弧縎KIP

[[+]|-<數(shù)值表達式>][IN<工作區(qū)號>|<表的別名>]【功能】以當前記錄為基準,前后移動指針。【說明】不選可選項,是將指針在當前記錄處向下移一個記錄。數(shù)值表達式的值N若是正的,正號可以忽略。表示從當前記錄向下N條記錄。若是負值表示從當前記錄向上N個記錄。4.3.4記錄指針及其操作【例題】USErsda

?RECNO(),BOF()

SKIP-1 ?RECNO(),BOF() GO4

?RECNO() SKIP SKIP-3 ?RECNO()&&此時輸出的記錄號是幾?

GOBOTTOM ?RECNO(),EOF() SKIP ?RECNO(),EOF()4.3.4記錄指針及其操作⑶按條件定位:【格式】LOCATE[<范圍>][FOR<條件表達式1>]

[WHILE<條件表達式2>]

【功能】在當前表中指針定位在滿足范圍內給定條件的第一條記錄上?!菊f明】①LOCATE

命令在表中順序查找滿足條件的記錄。②范圍缺省時,默認為ALL。③

若找到,返回找到的記錄號,EOF()=.F.,F(xiàn)OUND()=.T.;若未找到,EOF()=.T.,F(xiàn)OUND()=.F.。4.3.4記錄指針及其操作⑶按條件定位:

若要繼續(xù)查找滿足條件的其他記錄,可以執(zhí)行繼續(xù)查找命令?!靖袷健緾ONTINUE【功能】繼續(xù)執(zhí)行LOCATE命令?!菊f明】CONTINUE必須在LOCATE命令之后使用,用來繼續(xù)查找滿足條件的記錄。CONTINUE可以多次使用,直到指針到了文件尾或范圍末,它相當于從當前記錄開始執(zhí)行LOCATE命令。4.3.5記錄數(shù)據(jù)的修改在瀏覽窗口中修改:用鼠標單擊欲修改的記錄(或用上述指針定位的方法定位),成為當前記錄。對于字符型、數(shù)值型、邏輯型、日期型等字段,可以把插入點放在字段中修改數(shù)據(jù)。要修改備注型字段和通用型字段,用鼠標雙擊Memo和Gen,在出現(xiàn)的備注字段和通用型字段內容的編輯窗口中進行修改。

修改結束后關閉窗口或按Ctrl+W存盤,若放棄此次修改可按Esc鍵或Ctrl+Q鍵。4.3.5記錄數(shù)據(jù)的修改EDIT或CHANG命令:【格式】EDIT|CHANGE[FIELDS<字段名表>][<范圍>][FOR<條件表達式>][WHILE<條件表達式>]【功能】在編輯窗口顯示并編輯指定的字段?!菊f明】

①EDIT和CHANGE只能選擇其中之一,兩者等價。②缺省范圍和條件,從當前記錄編輯到最后的記錄。③

FIELDS短語用來指定顯示和編輯的字段。例如,EDITALL

姓名,職稱,則每條記錄只顯示姓名,職稱兩個字段。

4.3.5記錄數(shù)據(jù)的修改批量修改記錄

以上介紹的修改數(shù)據(jù)的方法是手工一條記錄一條記錄地修改,若數(shù)據(jù)表中的記錄很多,且許多記錄都可以按某一規(guī)律修改,若再用手工修改就顯得很麻煩,VFP提供了成批修改某字段有規(guī)律數(shù)據(jù)的方法。

例如:

在“人事管理數(shù)據(jù)庫”中創(chuàng)建人事工資信息表RSGZ.DBF。其中表的結構如表所示。我們要把所有基本工資在900元以上的人員再每人增加50元。C/5編號C/8姓名N,7,2基本工資N,6,2職務補貼N,6,2社會保險N,5,2公基金N,7,2應發(fā)工資N,7,2實發(fā)工資4.3.5記錄數(shù)據(jù)的修改菜單方式:(1)打開RSGZ.DBF,處于瀏覽狀態(tài)。(2)打開“表菜單”—“替換字段”,彈出“替換字段”對話框。(3)單擊“字段”右邊的下拉列表,選擇被替換的字段基本工資。(4)在“替換為”輸入框中輸入“基本工資+50”,也可以單擊右邊的按鈕打開表達式生成器生成表達式。⑸在替換條件中的作用范圍中選擇ALL,表示對所有滿足條件的記錄操作(默認情況是NEXT1,指僅替換當前一條記錄);⑹在For框中輸入條件,也可以單擊右邊的按鈕在表達式生成器中完成。⑺單擊“替換”按鈕,自動執(zhí)行上述工作??梢娏治撵`和姜瑞青兩人分別增加了50元基本工資。

4.3.5記錄數(shù)據(jù)的修改REPLACE命令:【格式】REPLACE<字段名1>

WITH<表達式1>[ADDITIVE]

[,<字段名2>WITH<表達式2>[ADDITIVE]][,…][<范圍>][FOR<條件表達式>][WHILE<條件表達式>]【功能】對當前數(shù)據(jù)表中指定范圍內滿足條件的記錄分別用表達式的值自動取代相應字段的原來值?!菊f明】

如果不選用范圍和條件短語,則只對當前記錄進行字段更改。②如果只選了范圍短語,則對指定范圍內的所有記錄進行字段更改。

4.3.5記錄數(shù)據(jù)的修改【說明】④

可以同時更改幾個不同字段的值。其中,<字段n>是被更新值的字段的名字,WITH后面的<表達式n>的值用來替換對應字段的值。⑤表達式的數(shù)據(jù)類型必須和字段的類型相同。如果表達式的值的長度比數(shù)值型字段的寬度大,則該命令將強制性地對數(shù)據(jù)進行處理。方法如下:首先截去多余的小數(shù)位,再將其進行四舍五入;如果經過上一步的處理后還不符合要求,則用科學計數(shù)法表示該數(shù)。經過上述兩步的處理仍不符合要求的,用星號*代替字段中的內容,表示溢出。若是字符型,則將多余的部分截去。4.3.5記錄數(shù)據(jù)的修改【說明】⑥

ADDITIVE子句只在替換備注型字段時才使用。選擇該子句,表示表達式中的數(shù)據(jù)追加到備注字段原數(shù)據(jù)的后面,如果不選此項,則用新值取代原值。【例】:USErsgzREPLACEALL

基本工資

WITH

基本工資+50FOR

基本工資>=900REPLACEALL

應發(fā)工資WITH基本工資+職務補貼,實發(fā)工資

WITH

應發(fā)工資-社會保險-公積金4.3.6記錄的刪除與恢復邏輯刪除

邏輯刪除記錄只對記錄作刪除標記,并未從表中真正刪除這些記錄,要真正刪除這些記錄,還要用PACK命令。對于帶有刪除標記的記錄,可以用RECALL命令取消刪除標記,恢復成正常記錄。在瀏覽窗口邏輯刪除

①打開數(shù)據(jù)表,處于瀏覽狀態(tài)下。②單擊菜單“表”—“刪除記錄”,彈出刪除對話框。③在其中確定范圍和FOR或WHILE條件;若只刪除當前記錄,范圍即為缺省狀態(tài):NEXT1。④單擊“刪除”按鈕,就會發(fā)現(xiàn)當前記錄左端有一黑色小方塊,表示該記錄已作過刪除標志。4.3.6記錄的刪除與恢復在瀏覽窗口邏輯刪除

最簡單的邏輯刪除方法是用鼠標點擊某一記錄左邊的小白方塊,變?yōu)楹谏灿辛诉壿媱h除標記。若用命令LIST、DISP顯示記錄,可以看到被邏輯刪除過的記錄前有一個“*”號。先是結構時,字段寬度字節(jié)數(shù)多1,存放刪除標記。一般情況下,邏輯刪除的記錄和其他記錄一樣參與操作,除非使用了如下命令:SETDELETEON。此時,具有刪除標記的記錄被隱藏起來,不參加任何操作。默認情況下,是SETDELETEOFF狀態(tài)。

4.3.6記錄的刪除與恢復利用命令邏輯刪除

【格式】DELETE[<范圍>][FOR<條件表達式>][WHILE<條件表達式>][IN<工作區(qū)號>|<表的別名>]【功能】給指定的記錄加上邏輯刪除標記。【說明】范圍、條件均不選時,僅對當前記錄起作用??梢杂煤瘮?shù)DELETE()來測試記錄是(.T.)否(.F.)被邏輯刪除。

4.3.6記錄的刪除與恢復恢復邏輯刪除

在瀏覽窗口恢復邏輯刪除打開數(shù)據(jù)表,單擊“表”菜單—“恢復記錄”,在彈出的對話框中選好范圍、條件,單擊“恢復記錄”按鈕即可。事實上,最簡單的方法是在瀏覽狀態(tài)下,用鼠標點擊已被邏輯刪除記錄左邊的小黑方塊。命令方式恢復邏輯刪除【格式】RECALL[<范圍>][FOR<條件表達式>][WHILE<條件表達式>][IN<工作區(qū)號>|<表的別名>]【功能】恢復已作過刪除標記的記錄?!菊f明】若不選范圍、條件,則只恢復當前記錄的刪除標記。4.3.6記錄的刪除與恢復物理刪除記錄我們可以將已作過邏輯刪除標記的記錄真正從數(shù)據(jù)表中移去,且不能恢復。菜單方式打開數(shù)據(jù)表,單擊“表”菜單—“徹底刪除”命令,彈出一個警告框,讓你確認一次。命令方式【格式】PACK

【功能】真正刪除帶有邏輯刪除標記的記錄,不能恢復。4.3.6記錄的刪除與恢復物理刪除表中所有記錄【格式】ZAP[IN<工作區(qū)號>|<表的別名>]【功能】

一次刪除表中所有的記錄,不管記錄是否作過邏輯刪除標記。【說明】

ZAP等效于DELEALL和PACK兩條命令連用。由于ZAP命令刪除的記錄不能恢復,所以要慎用該命令。在執(zhí)行該命令前,系統(tǒng)給用戶一次確認的機會。

4.4.1索引文件及分類4.4.2創(chuàng)建索引文件4.4.3索引文件的應用4.4索引文件及應用4.4.1索引文件及分類索引有著“按順序”及“方便查詢”的意義。如,圖書館的圖書索引卡片,在書名索引卡片上記錄了該書的書名、作者及編號(由編號可以找到該書在圖書館中的存放位置),這實際上是建立了一張圖書和存放位置的關系表,有了這樣一張對應表,我們就可以快速地由書名,作者、編號在龐大的圖書館中找到我們要找的書。4.4.1索引文件及分類

索引文件可以簡單地看成這樣一個文件,僅由兩個字段組成,一個字段是排序的關鍵字段(數(shù)據(jù)表中用來當作索引順序的字段,稱為關鍵字段,如書名或作者名等),另一個字段是每個關鍵字在原始數(shù)據(jù)表中對應的記錄號(但索引文件的實際結構比較復雜,決不是一個數(shù)據(jù)表的結構)。

例如在rsda.dbf數(shù)據(jù)表中,若以編號為關鍵字段從小到大的順序建立索引文件,其索引文件與原數(shù)據(jù)表對應關系如圖所示:

4.4.1索引文件及分類4.4.1索引文件及分類若按照編號升序索引的順序訪問數(shù)據(jù)表中的記錄,其順序如下所示。4.4.1索引文件及分類若按照姓名建立索引,其訪問記錄的順序與上述又不同了。

索引只是邏輯上的排序,并沒有改變原數(shù)據(jù)表中記錄的物理位置。需要指出的是,索引文件不能單獨使用,它必須與原數(shù)據(jù)表配合使用才有意義。這如同圖書館書庫里無書,只有空索引卡片一樣。4.4.1索引文件及分類索引文件的分類傳統(tǒng)的.IDX索引文件

.IDX索引文件只有一個索引,又被稱為單入口索引文件,它主要是因與FoxBASE以及以前的版本兼容而存在的。.CDX復合索引文件。

.CDX索引文件則包含了一個或多個索引,而復合索引文件又可以分為兩種:

一種是結構化復合索引文件,其文件名與表文件名相同,隨著表的打開而自動打開,在更改、添加、刪除紀錄時自動進行維護。另一種是獨立的復合索引文件,文件名與表名不一致,須單獨打開。

4.4.1索引文件及分類索引的類型索引類型索引值是否重復所屬索引文件類型索引數(shù)目索引表類型索引作用主索引不允許重復結構復合.CDX文件只能一個只允許數(shù)據(jù)表排序、唯一值、一對多關系一方候選索引不允許重復結構復合.CDX文件可以多個數(shù)據(jù)表自由表排序、唯一值普通索引允許重復結構、獨立.CDX文件.IDX文件可以多個數(shù)據(jù)表自由表排序、一對多關系多方唯一索引允許重復取首記錄結構、獨立.CDX文件.IDX文件可以多個數(shù)據(jù)表自由表排序、相同值取首記錄4.4.2建立索引文件創(chuàng)建結構化復合索引文件結構化復合索引文件的擴展名是.CDX,其主文件名與相應的數(shù)據(jù)表的主文件名相同。當數(shù)據(jù)表文件打開后,結構化復合索引文件也自動被打開。這是最常用的一種表設計器中:要建立索引文件,必須先有數(shù)據(jù)表,并且在表設計器中設定表索引。我們以rsgz表為例,說明如何建立結構化復合索引文件。打開rsgz.dbf表設計器,把“編號”字段設置為按升序索引,再單擊“索引”選項頁,該選項頁是用來定義索引項的。其中有:4.4.2建立索引文件表設計器中:

排序:用來定義排序規(guī)則。索引名:

溫馨提示

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

評論

0/150

提交評論