




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、章節(jié)第三章 數(shù)據(jù)記錄的維護(hù)操作 教學(xué)目的要求通過對第三章的學(xué)習(xí),使學(xué)生對工作區(qū)的概念有個全面的理解,并會使用工作區(qū)來打開表,會使用多個工作區(qū);使學(xué)生對表中的數(shù)據(jù)記錄能夠進(jìn)行添加、修改、刪除、替換、定位等操作,同時能夠使用命令完成這些操作。教學(xué)重點(diǎn)難點(diǎn)教學(xué)重點(diǎn):1. 工作區(qū)的用法。2. 多工作區(qū)的使用。3. 掌握表結(jié)構(gòu)、數(shù)據(jù)記錄的顯示命令。4. 掌握數(shù)據(jù)記錄的添加、定位、刪除、替換命令。教學(xué)難點(diǎn):1. 多工作區(qū)的使用。2. 數(shù)據(jù)記錄的添加、定位、刪除、替換命令的使用。擬留作業(yè)與實(shí)訓(xùn)作業(yè):1. 工作區(qū)的使用2. 顯示表結(jié)構(gòu)3. 顯示表數(shù)據(jù)記錄4. 數(shù)據(jù)記錄的定位,包括絕對定位和相對定位5. 數(shù)據(jù)記
2、錄的添加6. 數(shù)據(jù)記錄的刪除、替換實(shí)訓(xùn):完成實(shí)訓(xùn)大綱中實(shí)訓(xùn)項(xiàng)目四小結(jié)通過本章學(xué)習(xí):1、掌握工作區(qū)以及多工作區(qū)的使用方法;2、掌握表菜單下的命令操作;3、掌握表菜單下的命令操作對應(yīng)的命令。教學(xué)主要內(nèi)容教學(xué)方法時間分配【學(xué)習(xí)目標(biāo)】l知識點(diǎn):1. 熟悉工作區(qū)的概念。2. 掌握工作區(qū)的使用方法。3. 掌握多工作區(qū)的使用。4 掌握在當(dāng)前工作區(qū)操作其他工作表的方法。l技能點(diǎn):1會選擇工作使用表。2會切換工作區(qū)使用表。3在當(dāng)前工作能夠?qū)ζ渌ぷ鲄^(qū)表進(jìn)行操作。第一節(jié)、 工作區(qū)的的使用 一、工作區(qū)的概念與多表的使用 在以前版本中一直沿用了多工作區(qū)的概念,在每個工作區(qū)中可以打開一個表,即在一個工作區(qū)中不能同時打開
3、多個表。如果在同一時刻需要打開多個表,則只需要在不同的工作區(qū)中打開不同的表就可以了。Visual FoxPro最多可以同時打開32767個數(shù)據(jù)表,每個打開的表都要在存儲器中開辟一個存儲區(qū)域,我們把這個存儲區(qū)域叫做工作區(qū)。所以可知Visual FoxPro 為數(shù)據(jù)表提供了32767個工作區(qū)。 用USE命令打開表時,系統(tǒng)默認(rèn)使用1號工作區(qū)。而且每當(dāng)使用USE命令打開表時,Visual FoxPro 會先將此工作區(qū)原先已打開的表關(guān)閉。由此可知,假如希望同時打開多個表,必須先選擇工作區(qū)。USE命令中的IN WorkArea選項(xiàng)可以指定工作區(qū),專門選擇工作的命令是: SELECT nWorkArea |
4、cWorkArea |cTableAlias 在Visual FoxPro 中規(guī)定工作區(qū)編號是132767,只有前10個工作區(qū)有固定的名稱,分別是AJ。工作區(qū)別名是指定工作區(qū)中打開的數(shù)據(jù)庫表別名。 舉例來說,假設(shè)有學(xué)生及成績兩個表,并且希望同時打開它們,則在命令窗口中執(zhí)行下列命令: CLOSE DATABASE ALL OPEN DATABASE 學(xué)生管理 SELECT 1 USE 學(xué)生 SELECT 2 USE 成績 在USE 命令中加入選項(xiàng)同樣可以同時打開表學(xué)生及成績。執(zhí)行命令如下: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 USE 學(xué)生 IN 1 US
5、E 成績 IN 2 由上面的練習(xí)發(fā)現(xiàn),IN 參數(shù)能使在不離開當(dāng)前所在工作區(qū)的情況下,在別的工作區(qū)打開表。前面我們曾經(jīng)提到過,未加入任何參數(shù)的USE命令,能夠關(guān)閉當(dāng)前所在工作區(qū)中已打開的表文件。而搭配IN 參數(shù)的使用,則能夠讓在不離開當(dāng)前所在工作區(qū)的情況下,關(guān)閉別的工作區(qū)中已打開的表。 在前面的例子中,學(xué)生表在工作區(qū)1中,成績表打開在工作區(qū)2中,而當(dāng)前工作區(qū)仍然是1號工作區(qū)。假設(shè)希望工作區(qū)2位于當(dāng)前工作區(qū),可以用SELECT 命令實(shí)現(xiàn)。 看下面的命令: SELECT 2 SELECT B 注意:我們通常稱當(dāng)前所在的工作區(qū)為當(dāng)前工作區(qū),而打開于當(dāng)前工作區(qū)的表則稱為當(dāng)前表(或活動表)。 在某些時候,
6、可以同時打開了好幾個表,甚至搞不清楚哪些工作區(qū)已打開,而哪些尚未打開。為了避免發(fā)生這種情況,建議每次都在被占用的最小號工作區(qū)中打開表。什么是被占用的最小號工作區(qū)呢?舉例來說,假設(shè)已經(jīng)在第1號與第3號工作區(qū)中打開表,而未被占用的最小號工作區(qū)就是2號工作區(qū)。 選擇未被占用的最小號工作區(qū)可以使用下列兩種方法: 1 使用SELECT 0命令 每次打開數(shù)據(jù)表前,先執(zhí)行SELECT 0命令。系統(tǒng)便會選擇未被占用的最小號工作區(qū)為當(dāng)前工作區(qū)。例如, CLOSE DATABASE ALL OPEN DATABASE 學(xué)生管理 SELECT 1 USE 學(xué)生 SELECT 3 USE 成績 SELECT 0 US
7、E 課程 2 使用IN 選項(xiàng) 直接使用添加了IN 0選項(xiàng)的USE 命令打開表。例如: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 USE 學(xué)生 IN 1 USE 成績 IN 3 USE 課程 IN 0 二、表的別名 選用最小號工作區(qū)打開表,很可以使我們一時不知道該表占用的工作區(qū)編號或名稱。在這種情況下,我們該如何切換工作區(qū)呢?其實(shí)在前面介紹的SELECT 命令語法中,也可利用工作區(qū)中打開表的別名(Alisas)來選擇工作區(qū)。而表的別名可以在用USE 命令打開表時指定,若不指定則默認(rèn)為表原名就是別名。例如,假設(shè)我們分別在工作區(qū)1與工作區(qū)2中打開表學(xué)生與成績,如下
8、所示: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 SELECT 0 USE 學(xué)生 SELECT 0 USE 成績 若想切換回第1號工作區(qū),只要執(zhí)行命令: SELECT 學(xué)生 而若想再切換回第2號工作區(qū),只要執(zhí)行命令: SELECT 成績 可在USE命令中使用ALIAS AliasName參數(shù)來指定表的別名,例如: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 SELECT 0 USE 學(xué)生 ALIAS STUDENT SELECT 0 USE 成績 ALIAS SCORE 必須注意的是,一旦指定了別名,則必須利用別名切換工作區(qū)
9、。所以此時若想切換回第1號工作區(qū)中,必須執(zhí)行命令: SLECT STUDENT 想再切換回第2號工作區(qū)中,必須執(zhí)行命令: SELECT SCORE 注意:各個工作區(qū)中已打開的表的別名不可重名。 三、直接操作非當(dāng)前工作區(qū)的字段 Visual FoxPro 也允許在當(dāng)前工作區(qū),直接操作其他工作區(qū)中已打開表的字段。但是請使用下面的引導(dǎo)格式。 別名.字段名稱 或 別名-字段名 舉例來說,假設(shè)我們在工作區(qū)1中打開了表學(xué)生,在工作區(qū)2中打開了表成績.2號工作區(qū)是當(dāng)前工作區(qū),假如希望要瀏覽表學(xué)生中學(xué)號與姓名字段的內(nèi)容,請鍵入如下命令: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生
10、管理 SELECT 0 USE 學(xué)生 SELECT 0 USE 成績 ?學(xué)生.學(xué)號,學(xué)生.姓名 CLOSE DATABASES 利用“別名.字段名稱”的格式,可以讓您清楚地指出,此字段是哪一個工作區(qū)中表的字段.如果在字段名稱前不加別名引導(dǎo),表示它為當(dāng)前工作區(qū)的當(dāng)前表字段。四、重復(fù)打開同一個表Visual FoxPro 允許在不同的工作區(qū)中,同時打開同一個表文件,這種操作必須在USE 命令中增加選項(xiàng)AGAIN。假設(shè)我們希望同時在三個工作區(qū)中打開表學(xué)生,可使用下列方式。CLOSE DATABASE ALLOPEN DATABASE 學(xué)生SELECT 0USE 學(xué)生SELECT 0USE 學(xué)生 AG
11、AINUSE 學(xué)生 IN 0 AGAIN在不同的工作區(qū)中重復(fù)打開同一個表時,假如我們沒有指定別名的話,則第一次以表名作為別名,再次重復(fù)打開時則以工作區(qū)名作為別名。如果前10個工作區(qū)中打開,那么別名則分別可能是AJ;如果在1132767號工作區(qū)打開,則別名分別可能是W11W32767。讓我們看看下面的實(shí)例。CLOSE ALLOPEN DATABASE 學(xué)生管理SELECT 1USE 學(xué)生?ALIAS()學(xué)生SELECT 2USE 學(xué)生 AGAIN?ALIAS()BSELECT 10USE 學(xué)生 AGAIN?ALIAS()JSELECT 0USE 學(xué)生 AGAIN?ALIAS()CSELECT 1
12、1USE 學(xué)生 AGAIN?ALIAS()W11SELECT 0USE 學(xué)生 AGAIN?ALIAS()BSELECT30USE 學(xué)生 AGAIN?ALIAS()W30SELECT 32767USE 學(xué)生 AGAIN?ALIAS()W32767CLOSE ALL 30分鐘(詳講)20分鐘(詳講)30分鐘(詳講)20分鐘(詳講)教學(xué)主要內(nèi)容教學(xué)方法時間分配【學(xué)習(xí)目標(biāo)】l知識點(diǎn):1. 顯示表的結(jié)構(gòu)2. 顯示表的記錄l技能點(diǎn):1. 用命令顯示表結(jié)構(gòu)。2. 用命令顯示數(shù)據(jù)記錄。第二節(jié)、數(shù)據(jù)表的顯示一、顯示表結(jié)構(gòu)一、可以使用命令來查閱當(dāng)前表的結(jié)構(gòu)。命令如下:LIST STRUCTURE 或 DISPLA
13、Y STRUCTURE LIST命令以連續(xù)輸出方式顯示表結(jié)構(gòu),DISPLAY命令以分頁的方式顯示表結(jié)構(gòu)。比方說,想要列出表學(xué)生的結(jié)構(gòu),可以這樣: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 USE 學(xué)生 LIST STRUCTURE 如果在使用LIST STRUCTURE 命令前,還沒有打開表,屏幕會出現(xiàn)一個“打開”對話框,提示先選擇并打開一個表。 假如您希望將表的結(jié)構(gòu)用打印機(jī)打印出來,只要在LIST STRUCTURE 命令中加入TO PRINTER 關(guān)鍵字即可,例如: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 USE 學(xué)
14、生 LIST STRUCTURE TO PRINTER 或許希望將表的結(jié)構(gòu)存儲到一個文本文件中,請?jiān)贚IST STRUCTURE 命令中加入TO FILE FileName 參數(shù),例如: CLOSE DATABASES ALL OPEN DATABASE 學(xué)生管理 USE 學(xué)生 LIST STRUCTURE TO FILE TEST 該命令將表學(xué)生的結(jié)構(gòu)復(fù)制到文本文件TEST.TXT中(.TXT為默認(rèn)擴(kuò)展名)。二、顯示表記錄二、n LIST命令語法:LISTFIELDSFieldListScopeFORExpression1WHILE Expression2OFFNOCONSOLENOOPTI
15、MIZETO PRINTERPROMPT|TO FILE FileNamen DISPLAY 命令LISTFIELDSFieldListScopeFORExpression1WHILE Expression2OFFNOCONSOLENOOPTIMIZETO PRINTERPROMPT|TO FILE FileName LIST 命令與DISPLAY命令都可用來顯示表的數(shù)據(jù)記錄,它們的語法也基本相同。我們將詳細(xì)介紹LIST命令的使用方法,然后再說明DISPLAY 命令與LIST 命令的差異。但要注意的是,在使用LIST命令或DISPLAY 命令之前必須先使用USE命令打開表文件。 假設(shè)我們想顯示
16、表學(xué)生的數(shù)據(jù)內(nèi)容,在命令唇膏口中執(zhí)行下列命令: OPEN DATABASE 學(xué)生管理 USE 成績 LIST 結(jié)果屏幕上會出現(xiàn)表學(xué)生的所有記錄。 我們發(fā)現(xiàn)沒有參數(shù)的LIST命令,顯示了當(dāng)前表中的所有記錄,而且在首行顯示出各字段名稱的序列。如果不希望將字段名顯示出來,請先執(zhí)行狀態(tài)控制命令SET HEADING OFF。例如, SET HEADING OFF LIST 那么,屏幕上顯示表學(xué)生的所有記錄時,字段名將不被顯示。 如果希望恢復(fù)字段名的顯示,可在命令窗口中執(zhí)行下列命令: SET HEADING ON (1)顯示指定字段內(nèi)容 如果只想顯示部分字段的內(nèi)容,請使用FIELDS FidldList
17、(關(guān)鍵字FIELDS可省略),其中FidldList即為字段名稱系列,而各個字段名稱之間請使用逗號分隔。假設(shè)我們只想顯示表學(xué)生中“學(xué)號”“姓名”及“性別”三個字段的內(nèi)容,請?jiān)诿畲翱谥休斎胂铝忻睿?OPEN DATABASE 學(xué)生管理 USE 學(xué)生 LIST 學(xué)號,姓名,性別 各個字段之間用逗號來分隔。 (2)指定記錄顯示范圍 利用Scope參數(shù)可以限定顯示記錄的范圍,此范圍值如下: RECORE nExpr:表示指定僅顯示第nExpr條記錄。 NEXT nExpr:表是指定僅顯示從當(dāng)前記錄開始的nExpr條記錄。 REST:表示指定從當(dāng)前記錄開始到表結(jié)尾的全部記錄。 ALL:表示指定顯示所
18、有的數(shù)據(jù)記錄。 例如, 顯示學(xué)生表的第5條記錄。 OPEN DATABASE 學(xué)生管理 USE 成績 CLEAR LIST RECORD 5 例如, 顯示學(xué)生表中第1條至第3條數(shù)據(jù)記錄。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST NEXT 3 例如, 接著范例2,顯示表學(xué)生中,從當(dāng)前數(shù)據(jù)記錄開始至表結(jié)尾的數(shù)據(jù)記錄。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST REST 例如, 顯示表學(xué)生中第5條記錄的“姓名”及“院系”字段。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST 姓名,院系 RECORD 5 (3
19、)顯示滿足條件的全部記錄 如果加入FOR Iexpression1的條件子句,則LIST命令會在指定范圍內(nèi)查找符合Iexpression1條件的記錄,而且只有這些符合條件記錄會被LIST命令顯示出來。 例如, 將表學(xué)生中,學(xué)生姓名為“季節(jié)”的記錄顯示出來。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST FOR 姓名=“季節(jié)” 例如, 將表學(xué)生中,顯示院系中包含“中文”的記錄顯示出來。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST FOR “中文”$ “院系” 例如, 將成績表中,成績介于70-80之間的記錄顯示出來。 OPEN DATAB
20、ASE 學(xué)生管理 USE 成績 CLEAR LIST FOR 成績=70 AND 成績1985-01-01 例如, 將學(xué)生表中男學(xué)生的姓名字段值顯示出來. OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST FOR 性別=“男” (4)顯示滿足條件的連續(xù)記錄 在LIST 命令中,選項(xiàng)WHILE會從當(dāng)前記錄開始,逐一測試記錄是否滿足條件Iexpression2。滿足條件則顯示該記錄,一旦遇到不符合條件記錄時,便立刻停止測試結(jié)束顯示操作。 比較下面的兩段程序的執(zhí)行情況: OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST FOR 性別=“男” OPEN
21、DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST WHILE 性別=“男” (5)不顯示記錄號 如果在LIST命令中加入選項(xiàng)OFF,則記錄號將不被顯示。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST 姓名,院系,性別 OFF (6)打印輸出 如果在LIST命令中加入選項(xiàng)TO PRINTER,LIST命令將會在把記錄輸出到屏幕的同時,也送到打印機(jī)打印出來。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST 姓名,院系,性別 TO PRINTER (7)建立一個文本文件 如果在LIST命令中加入FILE FileNa
22、me選項(xiàng),LIST命令的輸出將會存儲至指定的文本文件中,此文本文件默認(rèn)擴(kuò)展名為.TXT。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 CLEAR LIST FOR 姓名,院系,性別 TO FILE TEST (8)DISPLAY命令的差異 LIST命令默認(rèn)操作范圍是所有數(shù)據(jù)記錄(即ALL),而DISPLAY命令的默認(rèn)操作范圍是當(dāng)前數(shù)據(jù)記錄(即 NEXT 1)。 當(dāng)表中的數(shù)據(jù)記錄太多,無法用一屏幕顯示完時,DISPLAY ALL 命令會以分頁方式顯示,并提示用戶繼續(xù)。而LIST命令則會連續(xù)顯示,直到最后一行記錄在屏幕上顯示出來為止。 (9)用瀏覽窗口顯示記錄 對比LIST和DIS
23、PLAY 命令在屏幕編輯區(qū)顯示記錄的方式,相信有不少用戶更加懷念易學(xué)易用的瀏覽窗口方式。其實(shí)使用命令方式也可以啟動瀏覽窗口,只需執(zhí)行BROWSE 命令即可。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 BROWSE 同樣地,也可在BROWSE 命令中假如FIELDS選項(xiàng),從而僅瀏覽特定的字段,或使用FOR 參數(shù)指定符合特定條件的記錄。以下是BROWSE 命令幾個最常用的用法示范。 例如, 瀏覽學(xué)生表中,所有學(xué)生的“學(xué)號”、“姓名”、“院系”及“出生日期”。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 BROWSE FIELDS 學(xué)號,姓名,院系,出生日期 例如, 瀏覽學(xué)
24、生表中,院系是中文系的學(xué)生數(shù)據(jù)。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 BROWSE FOR “中文”$ 院系 例如, 瀏覽學(xué)生表中,中文系女生的姓名。 OPEN DATABASE 學(xué)生管理 USE 學(xué)生 BROWSE FIELDS姓名 FOR “中文”$ 院系 AND 性別=“女” 30分鐘(詳講)10分鐘(詳講)10分鐘(詳講)10分鐘(詳講)10分鐘(詳講)5分鐘(略講)5分鐘(略講)10分鐘(詳講)10分鐘(詳講)教學(xué)主要內(nèi)容教學(xué)方法時間分配【學(xué)習(xí)目標(biāo)】l知識點(diǎn):3. 記錄指針的操作4. 數(shù)據(jù)記錄的搜索l技能點(diǎn):3. 用命令實(shí)現(xiàn)記錄指針的操作。4. 用命令進(jìn)行數(shù)據(jù)記錄的搜
25、索。第三節(jié)、數(shù)據(jù)記錄的查詢一、記錄指針的操作當(dāng)我們輸入表記錄時,按照記錄輸入的先后次序,系統(tǒng)自動為每一條記錄賦予了記錄號。表中也存在著一個與“記錄號”對應(yīng)的指針。隨著記錄操作的變動,記錄指針也隨之變化。任何時候,記錄指針總是指向某一條記錄,這條記錄就叫做當(dāng)前記錄。使用USE命令打開表以后,記錄指針指向第一條記錄。對數(shù)據(jù)記錄指針的操作可以使用“表”菜單中的“轉(zhuǎn)到記錄”命令,其中有“第一個”、“最后一個”、“上一個”、“下一個”命令,可以在表中移動記錄指針。在這里詳細(xì)介紹如何使用命令來操作記錄指針。對記錄的任何操作,只能對當(dāng)前記錄起作用。很多命令(如LIST等)都可以自動控制記錄指針,如果必要,也
26、可以使用GO、GOTO 及SKIP命令直接移動記錄指針,從而選擇當(dāng)前操作的記錄。接下來是這些命令的詳細(xì)使用說明。n GO命令命令語法:GO nRecordNumber IN nWorkArea|IN cTableAliasGO TOP|BOTTOM IN nWorkArea|IN cTableAliasNRecordNumber參數(shù)是記錄號,在命令窗口中執(zhí)行GO命令,記錄指針將移至給定記錄號的記錄上。例如,假設(shè)要將記錄指針移至第4條記錄,請鍵入下列命令:OPEN DATABASE 學(xué)生管理USE 學(xué)生GO 4DISPLAY如果想將記錄指針移至第一條記錄上,請?zhí)砑訁?shù)TOP;如果想將記錄指針移至
27、最一條記錄上,請?zhí)砑訁?shù)BOTTOM。例如,OPEN DATABASE 學(xué)生管理USE 學(xué)生GO BOTTOMDISPLAYGO TOPDISPLAY利用IN nWorkArea或IN cTableAlias子句,也可以移動其他工作區(qū)中表的記錄指針。其中nWorkArea可以是工作區(qū)數(shù)字編號,cTableAlias則可以是工作區(qū)的別名或工作區(qū)名。例如,CLOSE DATABASES ALLUSE 學(xué)生 IN 0USE 成績 IN 0GO 4?RECNO() 4GO 3 IN 2?RECNO(2) 3注意:RECNO()函數(shù)會返回當(dāng)前記錄指針?biāo)赶蛴涗浀木幪?,其語法是;RECNO(nWorkAr
28、ea|cTableAlias)。參數(shù)nWorkArea與cTableAlias可以指示RECNO()函數(shù)檢查其他工作區(qū)。GOTO命令與GO 命令完全相同。n SKIP命令命令語法:SKIPnRecordsIN nWorkArea|IN cTableAliasSKIP命令可以將記錄指針相對與當(dāng)前記錄,往前或往后移動若干條記錄。沒有任何參數(shù)SKIP命令相當(dāng)于SKIP 1命令,會將記錄指針下移一條記錄。例如,CLOSE DATABASESOPEN DATABASE 學(xué)生管理USE 學(xué)生?RECNO()1SKIP ?RECNO()2DISPLAY如果選項(xiàng)nRecords為正數(shù),則記錄指針會從當(dāng)前記錄向
29、下移動;如果選項(xiàng)nRecords為負(fù)數(shù),則記錄指針會從當(dāng)前記錄向上移動。選項(xiàng)參數(shù)值是移動的記錄條數(shù)。例如,CLOSE DATABASESOPEN DATABASE 學(xué)生管理USE 學(xué)生SKIP 5?RECNO()5SKIP 3?RECNO()3利用IN nWorkArea或IN cTableAlias子句,SKIP命令也可以移動其他工作區(qū)的記錄指針。NWorkArea可以是工作區(qū)數(shù)字編號,cTableAlias則可以是工作區(qū)的別名,或工作區(qū)名。例如,CLOSE DATABASESOPEN DATABASE學(xué)生管理USE 學(xué)生SKIP?RECNO()2SKIP 4 IN 成績?RECNO(“學(xué)生
30、”)5n 測試函數(shù)在數(shù)據(jù)表第一條記錄之前是表的起始位,而在最后一條記錄之后則是表的結(jié)束位。當(dāng)記錄指針已經(jīng)指向第一條記錄時,再用SKIP 1命令移動指針,將會使記錄指針移至表的起始位。但是利用RECNO()函數(shù)查看當(dāng)前記錄號,會發(fā)現(xiàn)記錄號仍然是1。若再次執(zhí)行記錄指針SKIP 1命令,系統(tǒng)將會提示出錯信息。為了防止出錯,在程序中常會利用BOF()函數(shù)判斷記錄指針的位置。如果記錄指針已到達(dá)起始位,BOF()函數(shù)將返回邏輯真值;否則返回邏輯假值。為了避免再次執(zhí)行SKIP 1命令時發(fā)生錯誤,通常的作法是執(zhí)行GO TOP 命令,將記錄指針再移至第一條記錄上。例如,OPEN DATABASE 學(xué)生管理USE
31、 學(xué)生CLEAR?RECNO()1?BOF().F.SKIP 1?RECNO()1GO TOP當(dāng)記錄指針位于最后一條記錄時,再執(zhí)行SKIP命令,就會把記錄指針移至結(jié)束位.但是此時的記錄號仍然是最大記錄號再加1.若再執(zhí)行SKIP命令,系統(tǒng)將會提示出錯西.我們常會利用EOF()函數(shù)判斷記錄指針是否到達(dá)表的結(jié)束位,如果記錄指針已達(dá)到表的結(jié)束位,EOF()函數(shù)將返回邏輯真值,否則將返回邏輯假值.為了避免再次執(zhí)行SKIP命令十發(fā)生錯誤,通常的作法是執(zhí)行GO BOTTOM命令,將記錄指針在移至最后一條記錄.例如,OPEN DATABASE 學(xué)生管理USE 學(xué)生GO BOTTOMCLEAR?RECNO()8
32、?EOF().F. SKIP ?EOF().T. ?RECNO()9 GO BOTTOM二、數(shù)據(jù)記錄的搜索對數(shù)據(jù)記錄的搜索可以使用“表”菜單中的“轉(zhuǎn)到記錄”命令,其中有“定位”命令,可以在表中定位記錄指針。選擇“定位”命令,在彈出的對話框中,可以選擇搜索的范圍,條件,范圍包括四種選項(xiàng):ALL、NEXT、REST、RECORD。在FOR選項(xiàng)彈出的表達(dá)式生成器中可以設(shè)置搜索記錄的條件設(shè)置。在這里詳細(xì)講解數(shù)據(jù)記錄的查詢命令。當(dāng)數(shù)據(jù)表中的記錄非常多時,不可能在瀏覽窗口中查看或利用GO 與SKIP命令逐項(xiàng)查找需要的記錄.此時,借助專為搜索操作所設(shè)計(jì)的LOCATE命令就是明智的選項(xiàng).下面是LOCATE命令
33、的語法:LOCATE FOR lExpressionLOCATE命令可以找出當(dāng)前表中,所有符合指定條件lExpression的記錄,并且將記錄指針指向第一條滿足條件的記錄.當(dāng)找不到滿足條件的記錄時,會將記錄指針指向結(jié)束位,在狀態(tài)欄中顯示”已到搜索范圍的結(jié)尾”的信息,并結(jié)束搜索操作.LOCATE命令找到了滿足條件的記錄,表是查找操作成功,執(zhí)行FOUND()函數(shù)將返回真值,而EOF()函數(shù)則會返回假值.反之,如果LOCATE命令沒有找到滿足指定條件的記錄,FOUND()函數(shù)將返回假值,EOF()函數(shù)則會返回真值。當(dāng)數(shù)據(jù)表中存在多個滿足條件的記錄時,可以用CONTINUE命令逐次找出后面的記錄。以下
34、是幾個使用LOCATE命令搜索數(shù)據(jù)記錄的例子。注意;在使用LOCATE命令找到指定條件的數(shù)據(jù)記錄后,可隨即執(zhí)行DISPLAY命令將其內(nèi)容顯示出來,或是執(zhí)行BROWSE命令以便在瀏覽窗口中檢查或編輯此條數(shù)據(jù)記錄。例如,在表學(xué)生中,找出學(xué)生姓名為“季節(jié)”的記錄,并將其內(nèi)容顯示在編輯區(qū)。OPEN DATABASE 學(xué)生管理USE 學(xué)生LOCATE FOR 姓名=“季節(jié)”DISPLAY例如,在表學(xué)生中,找出學(xué)生姓名為“王曉丹”的學(xué)生記錄,并在瀏覽窗口中檢查其內(nèi)容。OPEN DATABASE 學(xué)生管理USE 學(xué)生LOCATE FOR 姓名=“王曉丹”BROWSE例如,在表學(xué)生中,找出所有中文系的學(xué)生記錄
35、,并一一顯示在編輯區(qū)。OPEN DATABASE 學(xué)生管理USE 學(xué)生LOCATE FOR 院系=“中文”DISPLAYCONTINUEDISPLAY直到狀態(tài)欄出現(xiàn)“已到搜索范圍的結(jié)尾”的信息。 30分鐘(詳講)20分鐘(詳講)30分鐘(詳講)20分鐘(詳講)教學(xué)主要內(nèi)容教學(xué)方法時間分配【學(xué)習(xí)目標(biāo)】l知識點(diǎn):5. 數(shù)據(jù)記錄的插入6. 數(shù)據(jù)替換操作l技能點(diǎn):5. 用命令向表中插入記錄。6. 用命令替換數(shù)據(jù)記錄。第四節(jié)、數(shù)據(jù)表的維護(hù)與編輯一、數(shù)據(jù)記錄的插入一、維護(hù)數(shù)據(jù)庫的一項(xiàng)經(jīng)常性的操作就是根據(jù)需要隨時向表文件中添加記錄,添加記錄包括追加記錄、插入記錄和利用其他文件追加。追加記錄的菜單使用在前面已
36、經(jīng)講過,在這里詳細(xì)介紹如何使用命令來向表中追加記錄。向表中追加記錄包括在表的尾部增加記錄和在表中當(dāng)前指針位置插入記錄。n APPEND 命令A(yù)PPEND命令是在表的尾部增加記錄,它有三種格式:APPENDAPPEND BLANKAPPEND FROM 表名 使用APPEND命令需要立刻交互輸入新的記錄值,一次可以連續(xù)輸入多條新的記錄。然后關(guān)閉窗口結(jié)束輸入新記錄。APPEND命令相當(dāng)于在向表中增加記錄時選擇追加記錄方式。 而 APPEND BLANK是在表的尾部增加一條空白記錄,然后再用 EDIT、CHANGE或BROWSE命令交互修改空白記錄的值,或用REPLACE命令直接修改該空白記錄值。A
37、PPEND BLANK命令相當(dāng)于在向表中增加記錄時選擇追加新記錄方式。 而APPEND FROM命令是從FROM指定的表中向當(dāng)前打開的表中追加全部記錄。但是要特別注意的是,追加的來源表必須和要追加的目的表的表結(jié)構(gòu)完全相同。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 APPEND 結(jié)果:可以在學(xué)生表的編輯模式狀態(tài)下輸入任意多條記錄。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 APPEND BLANK 結(jié)果:只可以在學(xué)生表的瀏覽模式狀態(tài)下輸入一條記錄。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 COPY TO XS APPEND FROM XS
38、 注意:COPY TO XS是把當(dāng)前打開的學(xué)生表的全部數(shù)據(jù)記錄復(fù)制到以XS為名的表文件里。 結(jié)果:把XS表里的全部數(shù)據(jù)記錄追加到學(xué)生表的后面。n INSERT命令I(lǐng)NSERT命令可以在表的任意位置插入新的記錄,它的命令格式為:INSERTBEFOREBLANK 如果不指定BEFORE則在當(dāng)前記錄之后插入一條新記錄,否則在當(dāng)前記錄之前插入一條新記錄。 如果不指定BLANK,在當(dāng)前記錄之后(之前)輸入任意多條記錄,并以交互方式輸入記錄的值。否則在當(dāng)前記錄之后(或之前)插入一條空白記錄,然后再用EDIT、CHANGE或BROWSE命令交互式輸入或修改空白記錄的值,或用REPLACE命令直接修改該空白
39、記錄值。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 INSERT 結(jié)果:可以在當(dāng)前記錄指針后輸入任意多條記錄。 例如,OPEN DATABASE 學(xué)生管理 USE 學(xué)生 INSERT BLANK 結(jié)果:可以在當(dāng)前記錄指針后輸入一條記錄。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 INSERT 結(jié)果:可以在當(dāng)前記錄指針后輸入任意多條記錄。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 INSERT BEFORE 結(jié)果:可以在當(dāng)前記錄指針前輸入任意多條記錄。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 INSERT BLANK BE
40、FORE 結(jié)果:可以在當(dāng)前記錄指針前輸入一條記錄。 注意:如果在表上建立了主索引或候選索引,則不能用以上的APPEND或INSERT命令插入記錄,必須用SQL的INSERT命令插入記錄。二、數(shù)據(jù)替換操作利用“表”菜單下的“替換字段”命令可以實(shí)現(xiàn)對數(shù)據(jù)記錄的替換操作。在“替換字段”中有字段,替換為,替換條件三個部分。其中,字段文本框中要輸入的是需要替換的字段名;替換為文本框中可以輸入要替換為的值,也可以用表達(dá)式生成器來實(shí)現(xiàn);同時,可以對替換操作設(shè)置替換范圍??梢栽贔OR 或WHILE文本框中輸入替換范圍,也可以使用表達(dá)式生成器來實(shí)現(xiàn)。下面詳細(xì)介紹數(shù)據(jù)替換操作的命令。利用REPLACE命令,可以對
41、大批記錄的某個(或某幾個)字段值做統(tǒng)一的更新REPLACE命令的語法如下:REPLACE FieldName1 WITH eExpression1 ADDITIVE FieldName1 WITH eExpression2 ADDITIVE FORlExpression語法中的FieldName1、FieldName2等,即為要更新的字段名。WITH子句中的eExpression1、eExpression2等,則是用來置換對應(yīng)字段值的表達(dá)式。然而必須特別注意,被更新字段的數(shù)據(jù)類型必須與置換表達(dá)式的數(shù)據(jù)類型相同。1、基本操作例如,我們要把表學(xué)生中第5條記錄性別字段的內(nèi)容“男”改為“女”,鍵入命令
42、:OPEN DATABASE 學(xué)生管理USE 學(xué)生GO 5REPLACE 性別 WITH “女”如果希望使用REPLACE命令增加一條新記錄至表學(xué)生中,可以使用下列命令:OPEN DATABASE 學(xué)生管理USE 學(xué)生APPEN BLANKREPLACE 學(xué)號 WITH “99036004”REPLACE 姓名 WITH “張明”REPLACE 性別 WITH “男”REPLACE 院系 WITH “建筑”REPLACE 出生日期 WITH 1984-03-04REPLACE 備注 WITH “小學(xué)”或OPEN DATABASE 學(xué)生管理USE 學(xué)生REPLACE學(xué)號 WITH “990360
43、04”,姓名 WITH “張明”,性別 WITH “男”,院系 WITH “建筑”,出生日期 WITH 1984-03-04,REPLACE 備注 WITH “小學(xué)”此外,在替換數(shù)值字段值時,若是替換值超過被替換值的寬度,則REPLACE命令會采取下列方式來調(diào)整:a) 小數(shù)點(diǎn)后的數(shù)字被截掉并按四舍五入方式進(jìn)位,若仍無法容納此數(shù),則采用下一方式。b) 用科學(xué)計(jì)數(shù)法表示字段內(nèi)容,若這種方法仍不行,則采用下一方式。c) 用星號“*”來取代字段內(nèi)容,表示內(nèi)容超出范圍。2、備注字段的替換 雖然指定了備注字段以后,用WITH子句就可以替換其中的內(nèi)容,但是只有在LOCATE命令中添加了選項(xiàng)ADDITIVE以
44、后,才會使替換內(nèi)容追加到備注字段中已存在數(shù)據(jù)內(nèi)容的后面。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 LOCATE FOR 姓名=“季節(jié)” REPLACE 備注 WITH “小學(xué)” MODIFY MEMO 備注 CLOSE DATABASES 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 LOCATE FOR 姓名=“季節(jié)” REPLACE 備注 WITH “中學(xué)” ADDITIVE MODIFY MEMO 備注 CLOSE DATABASES 結(jié)果:會把“中學(xué)”追加到姓名為季節(jié)的學(xué)生的備注字段內(nèi)容之后。 即姓名為季節(jié)的學(xué)生的備注字段內(nèi)容為“小學(xué)中學(xué)”。 例如, OPEN DATABASE 學(xué)生管理 USE 學(xué)生 LOCATE FOR 姓名=“季節(jié)” REPLACE 備注 WITH “高中” MODIFY MEMO 備注 CLOSE DATABASES結(jié)果:會把姓名為季節(jié)的學(xué)生的備注字段中原先的“小學(xué)中學(xué)”內(nèi)容先刪除,在把“高中”追加到姓名為季節(jié)的學(xué)生的備注字段內(nèi)容。即姓名為季節(jié)的學(xué)生的備注字段內(nèi)容為“高中”。注意:MODIFY MEMO命令會打開備注字段編輯窗口,可編輯指定的備注字段的內(nèi)容。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝批發(fā)商直播帶貨與網(wǎng)紅營銷考核試卷
- 刨花板行業(yè)綠色生產(chǎn)與可持續(xù)發(fā)展考核試卷
- 彈射玩具銷售季節(jié)性規(guī)律考核試卷
- 樂器配件精密加工技術(shù)考核試卷
- 動物用藥品銷售與市場預(yù)測分析考核試卷
- 刺繡藝術(shù)在充電寶的個性化設(shè)計(jì)考核試卷
- 創(chuàng)業(yè)項(xiàng)目品牌定位與市場推廣考核試卷
- 勞務(wù)合同范本遷戶口
- 學(xué)校鏟車租賃合同范本
- 淘客推廣合同范本
- 2025年春新外研版(三起)英語三年級下冊課件 Unit6第1課時Startup
- 2025江蘇蘇州高新區(qū)獅山商務(wù)創(chuàng)新區(qū)下屬國企業(yè)招聘9人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《蒙牛集團(tuán)實(shí)施財務(wù)共享過程中存在的問題及優(yōu)化建議探析》8800字(論文)
- 平拋運(yùn)動的經(jīng)典例題
- 錄井作業(yè)現(xiàn)場風(fēng)險評估及控制措施
- 2025年度商會工作計(jì)劃
- 社區(qū)管理與服務(wù)專業(yè)實(shí)習(xí)總結(jié)范文
- 施工現(xiàn)場5S管理規(guī)范
- 科研方法講座模板
- 投資學(xué)基礎(chǔ)(第二版)教案全套 李博
- 【MOOC】中級財務(wù)會計(jì)-西南交通大學(xué) 中國大學(xué)慕課MOOC答案
評論
0/150
提交評論