9.1 多工作區(qū)操作
目的與要求: 通過本次課的學(xué)習(xí),掌握多工作區(qū)的操作。 | ||||||||||||||||||||||
教學(xué)內(nèi)容與時間安排、教學(xué)方法: 教學(xué)安排: 多工作區(qū)的訪問 40分鐘 表的關(guān)聯(lián)、連接、更新 40分鐘 教學(xué)方法: CAI、圖形、表格 | ||||||||||||||||||||||
教學(xué)重點及如何突出重點、難點及如何突破難點: 教學(xué)重點: 多工作區(qū)的訪問、連接、關(guān)聯(lián)和更新 教學(xué)難點: 表的關(guān)聯(lián)、連接、更新 | ||||||||||||||||||||||
基本內(nèi)容 | 教學(xué) | 課堂設(shè)計 | ||||||||||||||||||||
5.5 多工作區(qū)操作 一、 工作區(qū) 1.工作區(qū)的編號及別名 1)VFP為用戶提供了32767個工作區(qū),VFP為每個工作區(qū)進(jìn)行了編號(即1,2,3,……,32767)——稱工作區(qū)號,其中1—10號工作區(qū),VFP還分別命以別名A~J。即:
2)VFP規(guī)定,在任一時刻,只能選擇一個工作區(qū)進(jìn)行工作,即任一時刻VFP只能對一個表文件進(jìn)行操作,為了區(qū)別于其它工作區(qū),將當(dāng)前正在工作的工作區(qū)稱為當(dāng)前工作區(qū),把在當(dāng)前工作區(qū)打開的表文件稱當(dāng)前表文件。 2.表的別名 在打開一個表文件的同時,可以給打開的表文件命一個<別名>作為工作區(qū)的標(biāo)示符。如果在打開表文件時沒有給表文件命以別名,VFP默認(rèn)被打開的表文件名去掉擴展名部分的文件名為該表的別名。下面看一下在不同的工作區(qū)中打開表文件時給表文件命以別名的命令。 【格式】USE 〈表文件名〉 [ALIAS〈別名〉] 【功能】在打開表文件的同時給表文件命一個別名。 【說明】 [ALIAS〈別名〉]子句:若省略,VFP默認(rèn)打開表去掉擴展名部分的文件名部分就是表的別名(即與打開的表文件名同名)。若選擇該子句,表示給打開的表命一個別名。 別名的命名規(guī)則: 1) 必須以漢字、字母、下劃線開頭,由漢字、字母、數(shù)字或下劃線組成。例:rsd aa a_b h1 表別名歸納:表文件有3種等效的別名,第一種是VFP規(guī)定的別名A-J;第二種是打開表文件時定義的;第三種是打開表文件時沒有給表文件定義別名的情況下,取表文件名為別名。 【例1】USE D:\MYVFP\STUDENT ALIAS XS && XS就是STUDENT表的別名。 【例2】USE D:\MYVFP\STUDENT &&STUDENT就是表的別名。 3.選擇工作區(qū) 說明:因在任一時刻,只能選擇一個工作區(qū)對該工作區(qū)中打開的表文件進(jìn)行操作,因此這就涉及到選擇工作區(qū)、設(shè)置當(dāng)前工作區(qū)的操作。下面看選擇工作區(qū)的命令格式及使用方法。 【格式1】SELECT <工作區(qū)號>|<別名>|<0> 【功能】把工作區(qū)號或別名所指定的工作區(qū)置為當(dāng)前工作區(qū)。 【說明】 執(zhí)行該命令后,命令中所指的工作區(qū)就是當(dāng)前工作區(qū)。 <工作區(qū)號>:1到32767 <別名>子句:有以上歸納的3種情況。 <0>子句:表示選擇當(dāng)前沒有使用的編號最小的工作區(qū)。 【格式2】 USE <表文件名> [[ALIAS〈別名>] IN 0|<工作區(qū)編號 >|<工作區(qū)別名> 【功能】在打開表文件的同時選擇工作區(qū)。 【說明】 在打開表文件時選擇工作區(qū),當(dāng)前工作區(qū)仍為原(正使用)工作區(qū)。 IN 0子句:表示選擇當(dāng)前沒有使用的編號最小的工作區(qū)。 【注】 啟動VFP后.系統(tǒng)默認(rèn)1號工作區(qū)為當(dāng)前工作區(qū)。 在當(dāng)前工作區(qū)訪問非當(dāng)前工作區(qū)中的字段時,應(yīng)在被訪問文件和該字段前加入“工作區(qū)別名”和“->”標(biāo)示符或“工作區(qū)別名”和“.”標(biāo)示符,此時對外工作區(qū)訪問時,并不改變被訪問工作區(qū)的記錄指針。 4.多表數(shù)據(jù)查詢 多表數(shù)據(jù)的查詢實際指的是多表之間數(shù)據(jù)的互訪,如在當(dāng)前表所在的工作區(qū)訪問其它工作區(qū)表中的數(shù)據(jù)、又如,用一個表中的數(shù)據(jù)去替換另一個表中的數(shù)據(jù),這就是在實際工作中常常用到的多表之間數(shù)據(jù)的查詢和使用問題。 【說明】 在當(dāng)前工作區(qū)訪問非當(dāng)前工作區(qū)中的字段時,應(yīng)在被訪問文件名與字段之間加入“工作區(qū)別名”和“->”或“工作區(qū)別名”和“.”標(biāo)示符,,此時對另外工作區(qū)的訪問,并不改變被訪問工作區(qū)表文件的的記錄指針。 -----------本節(jié)課結(jié)束----------- 二、表的關(guān)聯(lián) 說明: 將當(dāng)前工作區(qū)稱做主區(qū),主區(qū)中打開的表文件稱主表(或父表),非當(dāng)前工作區(qū)稱輔區(qū),輔區(qū)中打開的表稱輔表(子表)。 建立關(guān)聯(lián)可使用命令,也可使用“數(shù)據(jù)工作期”窗口建立。 1、建立關(guān)聯(lián)的條件 建立表之間關(guān)聯(lián),一是要使建立關(guān)聯(lián)的表具有相同的字段,二是每個表都要以該字段建立索引。在這一前提下,以其中一個表中的字段與另一個表中的同名字段建立關(guān)聯(lián),當(dāng)主表中記錄指針移動時,輔表中的記錄指針會隨之移動。 關(guān)聯(lián)的過程:主表中記錄指針移動一次,輔表中記錄指針遍歷一周。 2、用命令建立關(guān)聯(lián) 【格式】SET RELATION TO [<關(guān)鍵字表達(dá)式1> INTO <子表別名>,<關(guān)鍵字表達(dá)式2> INTO <別名>...] [ADDITIVE] 【功能】建立當(dāng)前工作區(qū)打開的表與其它工區(qū)中打開的表之間的關(guān)聯(lián)。 【說明】 〈別名〉:是指與當(dāng)前表(父表)相關(guān)聯(lián)的表(子表)文件的別名。 <關(guān)聯(lián)表達(dá)式〉:可以是字符表達(dá)式、數(shù)值表達(dá)式、日期表達(dá)式,它們是建立關(guān)聯(lián)的依據(jù)。 注:★若〈關(guān)聯(lián)表達(dá)式〉是字符表達(dá)式時,被關(guān)聯(lián)表(子表)應(yīng)事先以〈關(guān)聯(lián)表達(dá)式〉為關(guān)鍵字建立索引文件,且此關(guān)鍵字必須是兩表中共有的字段。并將該索引文件規(guī)定為主索引文件。每當(dāng)主庫的記錄指針重新定位時,就尋找子表中與索引關(guān)鍵字相一致的第一條記錄,并把記錄指針指向該記錄(相當(dāng)在子表中執(zhí)行了一個SEEK命令)
建立“一對多關(guān)聯(lián)”命令 【格式】set skip to [<別名1>][,<別名2>]... 【功能】建立關(guān)聯(lián)表之間的一對多關(guān)聯(lián)關(guān)系。 【說明】 <別名>選項:代表當(dāng)前表與<別名>所指的表之間相匹配的記錄是一對多關(guān)系。 該命令是在使用了set relation命令建立了關(guān)聯(lián)以后才起作用。 省略<別名>選項,表示撤銷當(dāng)前表與其所有相關(guān)聯(lián)表的一對多關(guān)聯(lián)。 三、表之間的連接 【命令】join with <別名> to <新表文件> for<條件>[fields<字段名表>] 【功能】在當(dāng)前表文件與指定別名的表文件之間建立連接。 四、表文件的更新 【命令】update on <關(guān)鍵字段> from <別名> replace <字段名1> with <表達(dá)式1>[,<字段名2> with <表達(dá)式2>,…<字段名n> with <表達(dá)式n>] 【功能】利用<別名>表的表達(dá)式值更新當(dāng)前表文件的記錄。
-----------本節(jié)課結(jié)束-----------
|
講述
|
工作區(qū)的編號和別名5分鐘
表的別名10分鐘
工作區(qū)選擇10分鐘
多表數(shù)據(jù)查詢15分鐘
建立關(guān)聯(lián)的條件5分鐘
建立關(guān)聯(lián)的命令15分鐘
表之間的連接10分鐘
表文件更新10分鐘 |