VF數(shù)據(jù)庫實(shí)用講座第二章-第八章.ppt_第1頁
VF數(shù)據(jù)庫實(shí)用講座第二章-第八章.ppt_第2頁
VF數(shù)據(jù)庫實(shí)用講座第二章-第八章.ppt_第3頁
VF數(shù)據(jù)庫實(shí)用講座第二章-第八章.ppt_第4頁
VF數(shù)據(jù)庫實(shí)用講座第二章-第八章.ppt_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Visual FoxPro窗口和環(huán)境設(shè)置 項(xiàng)目管理器的應(yīng)用 數(shù)據(jù)庫的建立及使用,第二章,命令窗,顯示主窗,狀態(tài)行 當(dāng)前表、記錄數(shù),智能菜單 根據(jù)打開的窗口不同顯示不同菜單內(nèi)容,VFP的系統(tǒng)界面,VF環(huán)境 配置 在成功地安裝了 Visual FoxPro 之后,需要設(shè)置開發(fā)環(huán)境。環(huán)境設(shè)置包括主窗口標(biāo)題、默認(rèn)目錄、項(xiàng)目、編輯器、調(diào)試器及表單工具選項(xiàng)、臨時文件存儲、拖放字段對應(yīng)的控件和其他選項(xiàng)。方法:從“工具”菜單選擇“選項(xiàng)”命令,注意:將當(dāng)前設(shè)置保存為默認(rèn)設(shè)置,項(xiàng)目管理器的應(yīng)用,“項(xiàng)目管理器”是 V F 中處理數(shù)據(jù)和對象的主要組織工具,是 文件、數(shù)據(jù)、文檔和 V F 對象的集合,其保存文件帶有 .

2、pjx 擴(kuò)展名。 在建立表、數(shù)據(jù)庫、查詢、表單、報(bào)表以及應(yīng)用程序時,可以用“項(xiàng)目管理器”來組織和管理文件。 “項(xiàng)目管理器”為數(shù)據(jù)提供了一個組織良好的分層結(jié)構(gòu)視圖。若要處理項(xiàng)目中某一特定類型的文件或?qū)ο?,可選擇相應(yīng)的選項(xiàng)卡。 “項(xiàng)目管理器”顯示為一個獨(dú)立的窗口??梢砸苿铀奈恢谩⒏淖兯某叽缁蛘邔⑺郫B起來只顯示選項(xiàng)卡。,項(xiàng)目管理器折疊,項(xiàng)目管理器與工具欄合并,“項(xiàng)目管理器”中的項(xiàng)是以類似于大綱的結(jié)構(gòu)來組織的,可以將其展開或折疊,以便查看不同層次中的詳細(xì)內(nèi)容。 創(chuàng)建和修改文件-單擊右上角的向上箭頭,即可折疊,將選項(xiàng)卡拖出來顯示,如果項(xiàng)目中具有一個以上同一類型的項(xiàng),其類型符號旁邊會出現(xiàn)一個 + 號

3、。單擊 + 號可以顯示項(xiàng)目中該類型項(xiàng)的名稱。 若要折疊已展開的列表,可單擊列表旁邊的 - 號,例如,如果想把一些已有的擴(kuò)展名為 .dbf 的表添加到項(xiàng)目中,只需在“數(shù)據(jù)”選項(xiàng)卡中選擇“自由表”,然后用“添加”按鈕把它們添加到項(xiàng)目中。 “項(xiàng)目管理器”簡化了創(chuàng)建和修改文件的過程,只需選定要創(chuàng)建或修改的文件類型,然后選擇“新建”、“修改”、“添加“或”移去”文件按鈕,V FP 將顯示與所選文件類型相應(yīng)的設(shè)計(jì)工具,選項(xiàng)卡,數(shù)據(jù)”選項(xiàng)卡,數(shù)據(jù)庫是表的集合,一般通過公共字段彼此關(guān)聯(lián)。使用“數(shù)據(jù)庫設(shè)計(jì)器”可以創(chuàng)建一個數(shù)據(jù)庫,數(shù)據(jù)庫文件的擴(kuò)展名為 .dbc。 數(shù)據(jù)庫表和自由表都存貯在以 .dbf 為擴(kuò)展名的文

4、件中,但自由表不是數(shù)據(jù)庫的組成部分。 查詢是檢查存貯在表中的特定信息的一種結(jié)構(gòu)化方法。利用“查詢設(shè)計(jì)器”,可以設(shè)置查詢的格式,該查詢將按照輸入的規(guī)則從表中提取記錄。查詢被保存為帶 .qpr 擴(kuò)展名的文件。 視圖是特殊的查詢,通過更改由查詢返回的記錄,可以用視圖訪問遠(yuǎn)程數(shù)據(jù)或更新數(shù)據(jù)源。視圖只能存在于數(shù)據(jù)庫中,它不是獨(dú)立的文件。,數(shù)據(jù)庫的建立及使用,建立數(shù)據(jù)表 確定表中字段的內(nèi)容 向表中輸入數(shù)據(jù) 修改和瀏覽數(shù)據(jù)表 追加其它表中已有的記錄 按照條件添加記錄,相關(guān)概念: VF中的數(shù)據(jù)庫是由表(.dbf)構(gòu)成的。 “表”是一個的二維的表格,也稱為關(guān)系,由行和列組成,表格中的每一行稱為一個紀(jì)錄,表格中的

5、每一列則稱為一個字段。 使用“表設(shè)計(jì)器”可以方便、直接地創(chuàng)建表,我們既可以通過“項(xiàng)目管理器”的“數(shù)據(jù)”選項(xiàng)卡使用“表設(shè)計(jì)器”創(chuàng)建;也可以從“文件”菜單中使用“表設(shè)計(jì)器”創(chuàng)建。 自由表,是指它是孤立存在的,和其他表沒有發(fā)生聯(lián)系,既不能控制其他表,也不被其他表控制。它獨(dú)立存在于任何數(shù)據(jù)庫之外。 數(shù)據(jù)庫表,它是數(shù)據(jù)庫的一部分,行 記錄 元組,表名 關(guān)系名,字段 屬性 字段名 屬性名 字段值 屬性值,這個二維表格,又稱關(guān)系,數(shù)據(jù)類型 表中的每一個字段由于其數(shù)據(jù)代表的意義的不同,因而都有特定的數(shù)據(jù)類型,例如:編號、姓名、出生年月三個字段的類型是各不相同的,在VF中,分別是用數(shù)值型(或整型)、字符型、日期

6、型來表示的。熟悉各種數(shù)據(jù)類型可以幫助我們更快更好地對表進(jìn)行操作。VF6.0 表中的數(shù)據(jù)類型及簡單的說明如下:,字符型:用于包含字母、漢字、數(shù)字型文本、符號、標(biāo)點(diǎn)等一種或幾種的字段,其中的數(shù)字一般不是用來進(jìn)行數(shù)學(xué)計(jì)算的,如電話號碼、姓名、地址。 貨幣型:貨幣單位,最多可有四位小數(shù),如果小數(shù)部分超過四位則將通過四舍五入只保留四位,如商品價(jià)格。 數(shù)值型:整數(shù)或小數(shù)。如:成績、年齡、 訂貨數(shù)量。如果有小數(shù),需要指定小數(shù)位數(shù),小數(shù)點(diǎn)包含在字段寬度中,占一個字節(jié)。它還支持十六進(jìn)制數(shù)值。 浮點(diǎn)型:同數(shù)值型。 整 型:不帶小數(shù)點(diǎn)的數(shù)值。,日期型:用來存放日期數(shù)值,Visual FoxPro 6.0(5.0)支

7、持2000年型的日期數(shù)值。格式為:月/日/年。如:04/28/97。其中的年份如果輸入97,則系統(tǒng)默認(rèn)為1997,將光標(biāo)條移到表中該字段時就會顯示“04/28/1997”,如果輸入小于48的數(shù)(如45)則系統(tǒng)默認(rèn)為2045,因此,最好輸入完整的年份。 日期時間型:格式為:月/日/年 時:分:秒 AM或PM。如:04/28/97 06:26:00 AM。 雙精度型:雙精度數(shù)值,如實(shí)驗(yàn)所要求的高精度數(shù)據(jù)。,邏輯型:當(dāng)存儲的數(shù)據(jù)只有兩種可能時使用,用True(.T.)和False(.F.)表示。如:是否結(jié)婚。 備注型:又稱內(nèi)存型,它的長度隨輸入數(shù)據(jù)的長度而定,它的存儲和表中其他數(shù)據(jù)是分開的,存放在擴(kuò)

8、展名為.FPT的文件中。 通用型:可以鏈接或嵌入OLE對象,如由其他應(yīng)用程序創(chuàng)建的電子表格、WORD文檔、圖片。當(dāng)鏈接OLE對象時,表中只包含指向數(shù)據(jù)的鏈接和創(chuàng)建OLE對象的應(yīng)用程序的鏈接;當(dāng)嵌入OLE對象時,表中包含OLE對象復(fù)件及指向創(chuàng)建此OLE對象應(yīng)用程序的鏈接。,創(chuàng)建新表步驟:,選擇新建表,打開表設(shè)計(jì)器,建立表結(jié)構(gòu) (也可以用命令:CREATE ) 1、輸入字段名。 2、選擇字段類型。 (注意,字段的數(shù)據(jù)類型應(yīng)與將要存儲在其中的信息類型相匹配) 3、選擇寬度 (字段的寬度足夠容納將要顯示的信息內(nèi)容,一個漢字需占兩個字符。) 4、設(shè)置“小數(shù)位數(shù)” 。 5、如果要為字段添加索引,就在“索引

9、”列中選擇一種排序方式。,輸入字段名,選擇字段類型,建立表結(jié)構(gòu),選擇寬度,選擇 小數(shù),建立索引,允許為空,當(dāng)前行 調(diào)整次序,6、如果想讓字段接受 null 值,選中“NULL”。NULL無明確的值,它不等同于零或空格。按ctrl+0 輸入 字段名前的雙向箭頭表明是當(dāng)前行。一行各項(xiàng)目之間用Tab鍵移動。 7、表的結(jié)構(gòu)設(shè)置完畢后, 選取“確定”按鈕,會詢問“現(xiàn)在輸入數(shù)據(jù)嗎?”。此時,可以選擇是立即開始輸入記錄,還是在以后準(zhǔn)備好所有記錄后再打開表進(jìn)行輸入。,在表中添加記錄,“打開”已有的數(shù)據(jù)庫表,點(diǎn)瀏覽,從“文件”菜單打開,注意文件位置,注意文件類型,在“瀏覽”窗口中輸入新的記錄Ctrl+y 。當(dāng)輸

10、入內(nèi)容滿一個字段時, 光標(biāo)會自動跳到下一個字段。內(nèi)容不滿時,用Tab鍵或回車鍵將光標(biāo)移到下一字段。 當(dāng)編輯備注型(memo)字段時,將光標(biāo)條移到memo上,雙擊它或按Ctrl+Home鍵就可進(jìn)入memo字段的輸入窗口進(jìn)行輸入、修改。完成后,單擊窗口上的關(guān)閉按鈕“X”或按Ctrl+w可以保存并關(guān)閉窗口。如不想保存,則按Esc鍵或Ctrl +Q。 進(jìn)入通用型(gen)字段與備注型方法相同。進(jìn)入編輯窗口后,打開“編輯”菜單,選擇“插入對象”進(jìn)入插入對象窗口。選擇“新建”可以創(chuàng)建多種格式的圖象。我們選擇“由文件創(chuàng)建”,在“文件”框中輸入插入對象的文件名,包括路徑。,點(diǎn)擊修改數(shù)據(jù),CTRL+Y, 添加記

11、錄,如果選擇“鏈接”則只存儲該圖象的鏈接,而不把整個圖象包括進(jìn)通用型字段中。如果選擇“顯示為圖標(biāo)”則可以用圖標(biāo)表示插入的圖象對象。,通用型字段輸入 為插入對象,可以新建也可以來自文件,查看表的信息,可以使用“編輯”窗口或“瀏覽”窗口 瀏覽窗口的技巧: 將鼠標(biāo)指向兩字段名之間,這時鼠標(biāo)會變成左右向的雙向箭頭,用左鍵按住它左右拖動,字段寬度變化了。這只是顯示寬度變化了,并未改變表的結(jié)構(gòu)。 將鼠標(biāo)指向?yàn)g覽窗口最左邊中間的區(qū)域(這里稱為記錄條調(diào)節(jié)線,其上稱為字段名條調(diào)節(jié)線,其下的黑色小豎長條稱為窗口拆分條),當(dāng)鼠標(biāo)變成上下向雙向箭頭時,按住它上下拖動,就可以改變記錄條的高度。 當(dāng)鼠標(biāo)在字段名調(diào)節(jié)線上變

12、成雙向箭頭時,上下拖動可以改變字段名的高度。,如果我們對字段名的排列順序不太滿意,如想把字段位置調(diào)換一下,這也很好辦,只要將鼠標(biāo)放在字段名上時,它會變成一個黑的向下箭頭,按住想移動的字段,拖到合適的位置放開。,字段寬度調(diào)節(jié)線,記錄高度 調(diào)節(jié)線,窗格 分割線,字段 選定,表的字段很多,可以拆分窗口。左右窗格可以都為“編輯”窗口或“瀏覽”窗口,也可以一邊是“編輯”窗口,一邊是“瀏覽”窗口。,另外,還可從“顯示”菜單中選擇“網(wǎng)格線”來隱藏網(wǎng)格線。,表記錄的定位,了解以下幾個概念:當(dāng)前記錄:對表中的記錄的操作是一個一個的進(jìn)行的,我們把正在操作的記錄叫作當(dāng)前記錄。打開一個表時,第一個記錄叫當(dāng)前記錄。記錄

13、號RECNO:按記錄的輸入順序記錄指針:指向當(dāng)前記錄的,并反映了當(dāng)前記錄的記錄號。 記錄定位:用命令指定當(dāng)前哪一個記錄為記錄,以便對其進(jìn)行操作。 記錄的定位方式絕對定位 goto相對定位 skip條件定位 locate,表文件的邏輯結(jié)構(gòu),記錄指針,GO TOP,Eof()=.t.,Bof()=.t.,GOTO 2,Goto record n,Goto bottom,(1) 絕對定位: GOTO 1 記錄號必須是一個正整數(shù)(或變量,數(shù)值表達(dá)式)2 還可以如下表示:GOTO TOP 指針指向首記錄 GOTO BOTTOM 指針指向末記錄3 GOTO可以簡寫為GO4 記錄號為常數(shù)時,GO可以省略,只

14、寫記錄號. (2)相對定位:SKIP +/-功能:在當(dāng)前記錄位置上進(jìn)行記錄指針的相對移動.說明: 1 +,- 號只取一個,+ 號(可以省略)表示當(dāng)前記錄向后移動,- 號(不能省略)表示當(dāng)前記錄向前移動.2 移動距離是一個整數(shù)(可以是數(shù)值表達(dá)式),向后移動一個記錄可以省略 +1。,記錄定位,單擊“作用范圍”下拉框,可以看到有“All ”、“ Next”、“ Record”、“Rest”四個選項(xiàng)。 默認(rèn)的“All”指全部記錄;“ Next”配合其右邊的數(shù)字(如8),表示對從當(dāng)前記錄起以下多少個(如8個)記錄進(jìn)行操作;“ Record”配合其右邊的數(shù)字,作用與上面的“記錄號”相同;“Rest”表示對

15、從當(dāng)前記錄開始,到文件的最后一個記錄為止的所有記錄進(jìn)行操作。,如果選擇“定位”,會彈出下面的對話框:,“For”、“While”文本框是可選項(xiàng),可以輸入或選擇表達(dá)式,表示操作的條件。其右邊的帶“.”的按鈕是表達(dá)式生成按鈕,單擊它會彈出對話框,以方便選擇操作條件。 “For”、“While”雖然都表示操作條件,但也有區(qū)別:For對滿足表達(dá)式條件的所有記錄進(jìn)行操作;While則從表中的當(dāng)前記錄開始向下順序判斷,只要出現(xiàn)不滿足表達(dá)式條件的記錄就終止,而不管理其后是否還有滿足條件的記錄。我們看下面兩條命令: Brow Next 9 For 成績85 Brow Next 9 While 成績85 前者表

16、示的是從當(dāng)前記錄后的9個記錄中所有成績大于85分的記錄都顯示;而后者則遇到一個符合條件的顯示一個,當(dāng)遇到成績不大于85 分的記錄終止,不再向下顯示(其中,Brow是命令,作用是將符合條件的記錄顯示在“瀏覽”窗口中) 相當(dāng)于條件定位命令:LOCATE FOR ,實(shí)例 Use exam Go 5 Disp 7 Goto 7 Skip 5 Skip 7 Locate for 電話號碼=6666002 continue disp Go bottom ?eof() Skip ?eof,作業(yè)題:模擬建立一個項(xiàng)目,建立項(xiàng)目:本人姓名 數(shù)據(jù)庫:學(xué)生人員信息庫 數(shù)據(jù)庫表:學(xué)生名冊、成績表、考勤表等 自由表:通訊

17、錄 (以上各表,字段不少于3個,記錄不少于2個,內(nèi)容自定,看誰設(shè)計(jì)的好),第三章修改表,第一節(jié) 1 修改表結(jié)構(gòu) 2 添加記錄 3 刪除記錄 4 編輯記錄,例表:exam.dbf,1 修改已有表的結(jié)構(gòu),在表中增加字段 刪除表中的字段 方法:1 打開表設(shè)計(jì)器進(jìn)行操作 2 命令:MODI STRU,實(shí)例,將 exam.dbf 表中 話費(fèi)改為話費(fèi)合計(jì) 增加兩欄 性別,族別(都是c型) 增設(shè)一項(xiàng):備注(備注型) 增設(shè)一項(xiàng):用戶圖片(通用型),表設(shè)計(jì)器,2 添加記錄,1、在“瀏覽”和“編輯”窗口下,選擇“追加新紀(jì)錄”。 2、在“瀏覽”和“編輯”窗口下,選擇“追加紀(jì)錄”,打開“追加來源”對話窗,進(jìn)行追加,同

18、時可以選擇追加類型、來源、和條件。 3、用命令 APPEND . FROM FOR ,選擇追加類型、來源、和條件,Use exam Append from exam for 營業(yè)區(qū)=“市區(qū)” Append Append from exam for 地址=“奎屯鐵路” Append from exam for “奎屯鐵路”$地址 Append from exam for “123”$地址 菜單操作 FLASH課件第三課:按照條件添加記錄,3 刪除記錄,刪除表中的記錄共有兩個步驟。首先是單擊每個要刪除記錄左邊的小方框,標(biāo)記要刪除的記錄,標(biāo)記記錄并不等于刪除記錄。要想真正地刪除記錄,還應(yīng)從“表”菜單

19、中選擇“徹底刪除”。 這個過程將刪除所有標(biāo)記過的記錄,并重新構(gòu)造表中余下的記錄。刪除做過刪除標(biāo)記的記錄時會將表關(guān)掉,因此若要繼續(xù)工作,必須重新打開該表。 刪除命令: 邏輯刪除 DELETE 邏輯刪除記錄的恢復(fù)命令 RECALL 物理刪除 PACK 刪除所有記錄ZAP 命令,除了通過鼠標(biāo)單擊做刪除標(biāo)記外,還可以通過在“刪除”對話框中設(shè)置條件,有選擇地刪除一組記錄。步驟: 1、從“表”菜單中選擇“刪除記錄”,出現(xiàn)“刪除”對話框: 在其中輸入刪除條件和范圍。 2、在輸入完刪除條件后,按“刪除”按鈕,就為符合條件的記錄打上了刪除標(biāo)記。 3、從“表”中選擇“徹底刪除”。,刪除標(biāo)記,例子,Use exam

20、 dele for left(電話號碼,3)=“666” dele for 營業(yè)區(qū)=“團(tuán)場 Pack 8 Dele next 10 Dele record 10 Dele rest Recall 用戶號=72411,4 編輯記錄,不管是在“瀏覽”窗口還是在“編輯”窗口中,都可以滾動記錄,查找指定的記錄,以及直接修改表的內(nèi)容。 若要改變“字符型”字段、“數(shù)值型”字段、“邏輯型”字段、“日期型”字段或“日期時間型”字段中的信息,可以把光標(biāo)設(shè)在字段中并編輯信息,或者選定整個字段并鍵入新的信息。 若要編輯“備注型”字段,在“瀏覽”窗口中雙擊該字段或按下 CTRL+PGDN或 CTRL+HOME。這時會

21、打開一個“編輯”窗口,其中顯示了“備注型”字段的內(nèi)容。 通過雙擊“瀏覽”窗口中的“通用型”字段,在編輯菜單中選插入對象,也可以直接編輯文檔,也可以雙擊對象打開其父類應(yīng)用程序(生成對象的應(yīng)用程序,如 Microsoft 畫筆)來進(jìn)一步修改對象。,直接點(diǎn)擊修改,表的字段級驗(yàn)證規(guī)則和記錄級驗(yàn)證規(guī)則,字段級有效性規(guī)則:來控制用戶輸入到字段中的信息類型,或檢查一個獨(dú)立于此記錄的其他字段值的字段數(shù)據(jù)。字段級有效性規(guī)則在字段值改變時發(fā)生作用,它將把所輸入的值用所定義的規(guī)則表達(dá)式進(jìn)行驗(yàn)證,如果輸入的值不滿足要求,則拒絕該值。 記錄級有效性規(guī)則:在向表中輸入記錄時,用于比較兩個以上的字段是否滿足一定的條件,如果

22、不滿足,記錄值被拒絕。,VFP數(shù)據(jù)完整性,VFP有三類完整性:實(shí)體完整性、參照完整性以及用戶自定義完整性。 1、用戶自定義完整性是指由用戶通過編程實(shí)現(xiàn)對數(shù)據(jù)完整性的約束。 2、參照完整性是指相關(guān)表之間的數(shù)據(jù)一致性。 3、實(shí)體完整性包括兩級:字段的數(shù)據(jù)完整性和記錄的數(shù)據(jù)完整性。 字段的數(shù)據(jù)完整性是指輸入到字段中的數(shù)據(jù)的類型或值必須符合某個特定的要求。字段的有效性規(guī)則即用以實(shí)施字段的數(shù)據(jù)完整性。 記錄的數(shù)據(jù)完整性是指為記錄賦于數(shù)據(jù)完整性規(guī)則。記錄的數(shù)據(jù)完整性通過記錄的有效性規(guī)則加以實(shí)施。,參照完整性(Referential Integrity,簡稱RI),用來控制數(shù)據(jù)的一致性,尤其是控制數(shù)據(jù)庫相關(guān)

23、表之間的主關(guān)鍵字和外部關(guān)鍵字之間數(shù)據(jù)一致性的規(guī)則。一般來講,具有一對多關(guān)系的兩張數(shù)據(jù)庫表要滿足以下三個規(guī)則: 1、子表中的每一個記錄在對應(yīng)的主表中必須有一個父記錄。 2、在父表中修改記錄時,如果修改了主關(guān)鍵字的值,則子表中相關(guān)記錄的外部關(guān)鍵字值必須同樣修改。 3、在父表中刪除記錄時,與該記錄中相關(guān)的記錄必須全部刪除。 參照完整性規(guī)則包括更新規(guī)則、插入規(guī)則和刪除規(guī)則。每一種規(guī)則又有“級聯(lián)”、“限制”、“忽略”三個級別,表的排序,1 排序文件 是一種特殊的表,所有記錄按照某個字段的值的大小排序,從小到大,或從大到小排列。 2 排序命令:SORT /C /D ,/D /C TO 功能: 把當(dāng)前打開的

24、表,指定表中一個或一個以上的字段作為關(guān)鍵字進(jìn)行排序, 結(jié)果得到一個以.dbf為文件擴(kuò)展名的排序文件, 原文件保留不變.排序文件名與表文件名不能同名。說明:1 邏輯型、備注型和通用型字段不能作排序關(guān)鍵字2 文件名由用戶指定,可以不加擴(kuò)展名,但不得與原文件重名。3 缺省/D項(xiàng),則按升序排列,否則按降序排列4 /C項(xiàng)只對字符型數(shù)據(jù)有效,排序時不區(qū)分字母的大小寫。5 關(guān)鍵字可以取多個,按列舉的先后排序。6 用SORT命令產(chǎn)生的排序文件必須打開才能使用。,1.使用一個關(guān)鍵字進(jìn)行排序的例子 USE d:foxproaddresslist SORT ON 姓名/D TO address1USE d:foxp

25、roaddress1LIST執(zhí)行以上命令的結(jié)果如下: 2.使用兩個關(guān)鍵字進(jìn)行排序的例子 USE d:foxproaddresslist SORT ON 姓名/D, 出生日期/C TO address2USE d:foxproaddress2LIST,表的索引,1、VFP中 的索引索引和書中的目錄類似,建立索引是為了快速的查詢,索引是一個獨(dú)立的文件(以.IDX或.CDX為擴(kuò)展名的文件),也是一個二維表,至少包含二個字段:索引字段(該字段從對應(yīng)的表中確定,并按該字段進(jìn)行排序),表記錄號字段。依賴這個字段才能把索引文件(.IDX)和表文件(.dbf)中的記錄對應(yīng)起來。 索引并不改變表中所存儲記錄的順

26、序,它只改變了VFP讀取每條記錄的順序??梢詾橐粋€表建立多個索引,每一索引代表一種處理記錄的順序。,2. 命令建立索引文件 命令: INDEX ON TO 說明: 1 關(guān)鍵字段只能是C、N、D、Y型,不能是 L、M、G型。關(guān)鍵字段可以有多個,按索引的先后順序分別稱人第一、第二、關(guān)鍵字。當(dāng)有多個索引字段時,必須把N、D、Y型的字段轉(zhuǎn)換成C型,用+號連在一起。2 文件名用戶指定??梢院驮硗?,不用加擴(kuò)展名,系統(tǒng)自動加上擴(kuò)展名(IDX)3 剛用INDEX命令建立的索引文件是打開的。例:INDEX ON 姓名 TO address1,3. 在表設(shè)計(jì)器中建立索引文件,主索引:可確保字段中輸入值的唯一性

27、并決定了處理記錄的順序??梢詾閿?shù)據(jù)庫中的每一個表建立一個主索引。如果某個表已經(jīng)有了一個主索引,可以繼續(xù)添加候選索引。 候選索引:象主索引一樣要求字段值的唯一性并決定了處理記錄的順序。在數(shù)據(jù)庫表和自由表中均可為 普通索引:也可以決定記錄的處理順序,但是允許字段中出現(xiàn)重復(fù)值。在一個表中可以加入多個普通索引。 唯一索引:為了保持同早期版本的兼容性,還可以建立一個唯一索引,以指定字段的首次出現(xiàn)值為基礎(chǔ),選定一組記錄,并對記錄進(jìn)行排序。,數(shù)據(jù)的導(dǎo)入和導(dǎo)出,VFP可以進(jìn)行多種數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出,包括EXCEL數(shù)據(jù)表,也可以直接追加各種表的數(shù)據(jù),第四章,VFP常用命令 VFP的常量 VFP的變量 VFP的函

28、數(shù) 表達(dá)式,打開庫 OPEN DATABASE 打開表命令: USE 表文件名 關(guān)閉表命令:USE 、CLOSE ALL 輸出命令: ?和? 列表和顯示命令 List 分屏顯示 Display 建表命令 CREAT 例如:CREAT TABLE 選課表(學(xué)號 C(8),課程號 C(4),成績 N(3),VFP常用命令,添加數(shù)據(jù) APPEND Use exam Append (追加數(shù)據(jù)總是在表的最后) 插入數(shù)據(jù) INSERT Go 5 Insert 瀏覽數(shù)據(jù) BROWSE 編輯修改數(shù)據(jù) EDIT,替換命令: REPLACE 字段1 WITH 表達(dá)式1,字段2 WITH 表達(dá)式2 范圍FOR Re

29、place all 營業(yè)區(qū) with “奎屯市區(qū)” for 營業(yè)區(qū)=“市區(qū)” Replace 工資 with 工資+100 for 職稱=“教授” 菜單操作見圖,VFP的常量,1、常量:在程序運(yùn)行過程中其值不變化的數(shù)據(jù),具有字符型(C)、數(shù)值型(N)、日期型(D)、邏輯型(L)、日時型(D)和貨幣型(Y)六種數(shù)據(jù)類型。數(shù)值型常數(shù):分為整數(shù)和實(shí)數(shù),有兩種表示形式:常用表示形式、指數(shù)表示形式。例如: 常用表示形式:1024,3.14,-0.25 指數(shù)表示形式:0.6E10表示0.6乘以10的6次方, 字符型常數(shù):也稱字符串,包括可打印的ASCII字符,漢字,符號。字符常量必須用界限符 、 、 把它

30、們括起來 123 01/03/45 流氓免 fox日期型常數(shù):用于表示日期。是D、T型常量的界限符,或用CTOD()GO 表示:CTOD(“01/02/98”)1998/01/02 或用-連接1998-01-02邏輯型常數(shù):用 .T.或 .t. 來表示真,用 .F.或 .f.來表示假。日期時間型常數(shù):用于表示日期和時間。是D、T型常量的界限符,或用CTOD()來表示:CTOT(“01/02/98 12:00:11 AM”)1998/01/02 12:00:11 a 貨幣型常數(shù):用于表示貨幣。,VFP的變量,變量:在程序運(yùn)行過程中用于表示其值發(fā)生變化的數(shù)據(jù),變量的方法:表示必須以漢字或字母開頭且

31、僅由英文字母、漢字、數(shù)字和下劃線組成。內(nèi)存變量:是一些臨時變量,它在內(nèi)存中存貯數(shù)據(jù),以便在需用時引用它的內(nèi)容。當(dāng)退出VFP或斷電時數(shù)據(jù)將自動消失。內(nèi)存變量可以有C、N、L、D、T、Y六種類型。它的具體類型與此時內(nèi)存變量中的值的類型一致。內(nèi)存變量長度 TO 例:STORE 0 TO X1,X2,Y1,Y2內(nèi)存變量的顯示例如我們在命令窗口中輸入 B=4后:? B+2, B*5 結(jié)果在下一行顯示 ? B/2 結(jié)果在當(dāng)前行顯示,字段變量:字段變量即每一個記錄的某個屬性字段名,它的值隨著不同的記錄而變化。 字段變量的值隨著表文件的打開而開始,關(guān)閉表文件后,字段變量的值消失。字段變量名=10個字符,必須以

32、漢字或字母開頭且僅由英文字母、漢字、數(shù)字和下劃線組成。例如:在上表中,當(dāng)前記錄號為2時,字段變量“姓名”的值為“李四”,當(dāng)我們把記錄指針指向3時,字段變量“姓名”的值為“王五”內(nèi)存變量與字段變量的區(qū)別:內(nèi)存變量獨(dú)立存在,字段變量隸屬于數(shù)據(jù)庫,不能獨(dú)立存在;內(nèi)存變量的類型和長度可隨所賦值的不同而變化,字段變量的類型和長度在建庫時已定義好,除非修改庫結(jié)構(gòu),否則不能改變;內(nèi)存變量為單值變量,字段變量為多值變量;,練習(xí): 下面列出的數(shù)據(jù)哪些是變量,哪些是常量?是常量說出其數(shù)據(jù)類型。1 姓名 “講師” ASCII 12.56 .Y. 12.56 .F. T A_12 CTOD(“05/06/98”),V

33、FP的表達(dá)式,表達(dá)式:通過運(yùn)算符,操作符及括號把常量和變量、函數(shù)等連起來 1、數(shù)值表達(dá) 運(yùn)算順序()-、*-*、/、%-+、- ?(1/60-3/56)*18.4500 2、字符表達(dá)式 +和- A=“奎屯市 ” B=“電信局 ” ?A+B,A-B,3、日期時間表達(dá)式 +和- 日期+天數(shù) 日期-天數(shù) 日期-日期 日期時間+秒數(shù) 日期時間-秒數(shù) 日期時間-日期時間 ?DATE()-2000-01-01 ?year(date()-year(2000-01-01),4、關(guān)系表達(dá)式 : = ,#,!= 不等于 = = 精確等于 $ 子串包含,例子 Use exam ?“李”“王” ?“趙”$用戶名 ?沈

34、$用戶名 dele for 市$營業(yè)區(qū) Locate for “市”$營業(yè)區(qū) Locate for “123”$地址 cont,5、邏輯表達(dá)式 : 邏輯運(yùn)算三個:與.and. 或.or. 非.not.或! 例:查詢地址在123團(tuán)使用小靈通的用戶 LOCATE FOR 設(shè)備類型=小靈通 .AND. 地址=123團(tuán) 統(tǒng)計(jì)地址在123團(tuán)使用小靈通的用戶 COUNT FOR 設(shè)備類型=小靈通 .AND. 地址=123團(tuán) TO X ?X 篩選出市區(qū)的固話用戶 COPY TO 市區(qū)固話 FOR 設(shè)備類型=固話 .AND. 營業(yè)區(qū)=市區(qū) 思考:統(tǒng)計(jì)話費(fèi)大于1000元的用戶 1,VFP的函數(shù),函數(shù)計(jì)算實(shí)際上是

35、對于指定的函數(shù)名和自變量(參數(shù)表)執(zhí)行事先編好的程序。每個函數(shù)必然有一個具有確定數(shù)據(jù)類型的返回值(函數(shù)值);函數(shù)值可作為一個數(shù)據(jù)再和其他數(shù)據(jù)進(jìn)行運(yùn)算; 送給函數(shù)的自變量的數(shù)據(jù)類型必須與該函數(shù)要求自變量的數(shù)據(jù)類型一致;否則將出現(xiàn)語法錯誤。 大多數(shù)函數(shù)都要使用一個或多個參數(shù),但有若干個函數(shù)是無參數(shù)的 函數(shù)名只寫前四個字符即可。,數(shù)值處理函數(shù) (1)平方根函數(shù):SQRT(X) ?sqrt(81) (2)取整函數(shù):INT(X) ?Int(3.14259)(3) 四舍五入函數(shù):ROUND(X,I) X=345.234 ?round(345.345,2),round(x,0), round(x,-2) (

36、4) 取模函數(shù):MOD(X,Y) 余數(shù)的正負(fù)號和除數(shù)相同,x,y同號,結(jié)果為其余數(shù),否則為其余數(shù)在加除數(shù)的值。 ?mod(10,3), mod(-10,3), mod(10,-3), mod(-10,-3) 1 -2 2 -1 Mod()函數(shù)相當(dāng)于求運(yùn)算符% ?15%4,15%-4 3 -1,(5) 求最大值函數(shù):MAX(X,Y) ?max(“康樂園60幢21”,“飛鴻里21幢24”) ?max(.t.,.f.) (6) 求最小值函數(shù):MIN(X,Y) ?min(“飛機(jī)”,“大炮”,“汽車”) ?min(2006-01-02,2001-05-15) 誰大誰小,根據(jù)字符串的排列順序,從菜單里的工

37、具選項(xiàng)數(shù)據(jù)-排列順序中有三種順序可選:拼音,機(jī)內(nèi)碼,筆劃(見下圖) (7)求和 SUM,求平均AVER 統(tǒng)計(jì)COUNT 例 SUM 月租費(fèi) TO S FOR 設(shè)備類型=小靈通 ?S,排序選擇,字符處理函數(shù) (1) 變大寫函數(shù):UPPER(S) (2) 變小寫函數(shù) :LOWER(S)?lower(Xly2A),upper(n=1) (3) 字符串長度函數(shù) :LEN(S) ?LEN(n=5+1) (4)求子串位置函數(shù) :AT(S1,S2)功能:給出S1在S2中的起始位置(數(shù)值)。說明:若S2不包含S1時,則函數(shù)返回0值。 ?AT(Xl,XXl=1) 練習(xí) UPPE(AB3cd)LOWE(AB3cd

38、)LEN(A B新3cd)AT(A,RSDA.DBF),(5)取子串函數(shù):SUBSTR(S,I,N)功能:取字符串S中第I個字符開始的N個字符。說明:N為可選項(xiàng)。若省略N,則一直取到末尾。 (6) 左取子串函數(shù):LEFT(S,N)功能:取字符串S左邊第一個字符起的N個字符。(7) 右取子串函數(shù):RIGHT(S,N)功能:取字符串S右邊的N個字符。(8)產(chǎn)生空格函數(shù) SPACE:SPACE(N)功能:產(chǎn)生N個空格。 SUBS(ASDFGHJK,2,2) SUBSTR(“潘長江”,1,2) USE EXAM DELE FOR left(姓名,1,2)=“張” LEFT(COMP,3) RIGH(C

39、OMP,3),(9) 宏替換函數(shù) &格式:&功能:將存貯在字符型內(nèi)存變量中的字符串替換出現(xiàn)。即把該變量所代表的字符串去掉字符串定界符后重新放到該函數(shù)所在位置上.當(dāng)宏替換之后還有內(nèi)容時,用一個圓點(diǎn)表示內(nèi)存變量名到此為止。若宏替換函數(shù)中字符型變量后跟有非空格字符時,則宏替換函數(shù)與其后字符必須用“.”間隔,以明確內(nèi)存變量名結(jié)束。宏替換函數(shù)符號與內(nèi)存變量名之間不能有空格 例:A=*?5&A.6作用: 1、可把數(shù)字字符組成的字符串轉(zhuǎn)變?yōu)閿?shù)值;C1=“34.98” INT(&C1)+ROUND(&C1,1) 2、用以替換命令中需要重復(fù)書寫較長的部分。A=“LIST FOR 職稱=”&A“高工”&A“工程師

40、”,日期和時間處理函數(shù) (1)系統(tǒng)日期函數(shù):DATE()系統(tǒng)時間函數(shù):time() (2) 系統(tǒng)日時函數(shù) :DATETIME()功能:返回當(dāng)前的系統(tǒng)時間。(默認(rèn)格式為MM/DD/YY HH:MM:SS AM|PM)沒有自變量 ?date() ?datetime() (3) 求年份函數(shù) :YEAR(X)功能:返回日期或日時X的4位數(shù)年份值。例:復(fù)制裝機(jī)日期大于5年的用戶 Copy to 5年戶 for year(date()-year(裝機(jī)參考日)=5,(4) 求月份函數(shù) MONTH和CMONTH格式:MONTH(X)和CMONTH(X)功能:返回日期X的月份值。 (5) 求日期函數(shù) :DAY(X)功能: 返回日期X的日子是幾號 (6)求星期幾函數(shù)DOW和CDOW格式:DOW(X)和CDOW(X)功能: 返回日期X是星期幾.(7)系統(tǒng)時間函數(shù) :TIME()功能:返回

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論