小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

易語(yǔ)言數(shù)據(jù)庫(kù)應(yīng)用手冊(cè)

 nxhujiee 2010-08-24


    易語(yǔ)言的數(shù)據(jù)庫(kù)功能大部分基于 XBASE 方式,所以您如果曾經(jīng)接觸過 XBASE 數(shù)據(jù)庫(kù)系統(tǒng)中的任何一款, 如:DBASEFOXBASE、FOXPRO 等等,就能夠相當(dāng)快地了解并應(yīng)用易語(yǔ)言的數(shù)據(jù)庫(kù)。

    所有易語(yǔ)言數(shù)據(jù)庫(kù)支持命令的具體解釋請(qǐng)?jiān)?span lang="EN-US">數(shù)據(jù)庫(kù)命令參考手冊(cè)中 查看,下面介紹一些概念和編程應(yīng)用知識(shí)。

一、易語(yǔ)言數(shù)據(jù)庫(kù)文件的組成:

.edb

    數(shù)據(jù)庫(kù)主文件

.edt

    數(shù)據(jù)庫(kù)輔助數(shù)據(jù)文件,僅在數(shù)據(jù)庫(kù)中存在備注型或者字節(jié)集型字段時(shí) 才存在,文件名稱除了后綴外與數(shù)據(jù)庫(kù)主文件相同,它必須與.edb文件放在同一目錄中。

.enx

    數(shù)據(jù)庫(kù)索引文件。使用 B+ 樹結(jié)構(gòu),由用戶根據(jù)需要自行創(chuàng)建,用作加快記錄的查找速度。

二、數(shù)據(jù)庫(kù)的內(nèi)部結(jié)構(gòu):

    易語(yǔ)言數(shù)據(jù)庫(kù)由行和列組成,如下面的數(shù)據(jù)庫(kù)內(nèi)容:

    其中每一行被稱為一條記錄,每一列稱為一個(gè)字 段。如上面的數(shù)據(jù)庫(kù)就有四條記錄和四個(gè)字段。

    字段具有“名稱”、“類型”、“最大文本長(zhǎng)度”三個(gè)屬性,有關(guān)介 紹如下:

    <1>、名稱: 字段名稱文本的長(zhǎng)度必須在 16 個(gè)字符以內(nèi);(一個(gè)英文字母為一個(gè)字符長(zhǎng)度,一 個(gè)中文為兩個(gè)字符長(zhǎng)度)
    <2>
、類型: 可以為以下常量值之一: 1、#字節(jié)型; 2、#短 整數(shù)型; 3、#整數(shù)型; 4、#長(zhǎng)整數(shù)型; 5、#小數(shù)型; 6、#雙精度小數(shù)型; 7#邏輯型; 8、#日期時(shí)間型; 10#文本型; 11、#字節(jié)集型; 12、#備注型;
    <3>
、最大文本長(zhǎng)度: 此屬性僅當(dāng)字段類型為“文本型”時(shí)才有效,用作指定文本的最大可能長(zhǎng)度,其值范圍必須在 1 1024 之間。如果字段類型不為“文本 型”,本屬性無效。當(dāng)寫入數(shù)據(jù)到數(shù)據(jù)庫(kù)中的文本型字段內(nèi)時(shí),多出的部分將被自動(dòng)剪切。

三、系統(tǒng)中的“數(shù)據(jù)庫(kù)”菜單功能:

    您可以使用“數(shù)據(jù)庫(kù)”菜單下的“結(jié)構(gòu)編輯器”來創(chuàng)建一個(gè)指定結(jié)構(gòu) 的數(shù)據(jù)庫(kù)或者修改一個(gè)已存在數(shù)據(jù)庫(kù)的現(xiàn)有結(jié)構(gòu)。然后,使用“記錄編輯器”可以加入或修改初始記錄數(shù)據(jù)。

    值得告訴大家的是:這兩個(gè)菜單功能皆通過調(diào)用 dbmanger.exe 文件(由 dbmanger.e 易 程序生成)來完成,dbmanger.e 源程序已經(jīng)隨系統(tǒng)一起提供,用戶可以對(duì)其進(jìn)行修改或者擴(kuò) 充,使之更能滿足您的需要。


    下面介紹一些數(shù)據(jù)庫(kù)應(yīng)用程序中常用的編程知識(shí),首先請(qǐng)下載并 查看一下示例工資數(shù)據(jù)庫(kù) 工資.edb ,其結(jié)構(gòu)如下:

   

其中的“實(shí)發(fā)”字段在本數(shù)據(jù)庫(kù)中并沒有被實(shí)際使用,僅用作方便對(duì) 某些命令進(jìn)行舉例。

一、編 程前的準(zhǔn)備工作:

強(qiáng) 烈推薦:在開始編寫數(shù)據(jù)庫(kù)應(yīng)用程序之 前,請(qǐng)將程序中所需使用數(shù)據(jù)庫(kù)的名稱及其內(nèi)所有字段名設(shè)置為常量,因?yàn)槌A靠梢允褂孟到y(tǒng)內(nèi)部的輸入法來很快地輸入。如:上面數(shù)據(jù)庫(kù)內(nèi)具有一 個(gè)名稱為“姓名”的字段,如果此字段名已經(jīng)被設(shè)置為了常量,那么在程序中需要引用它時(shí)可以簡(jiǎn)單地輸入 #xm , 而如果沒有設(shè)置為常量,您就必須使用 Windows 系統(tǒng)的輸入法來一個(gè)字一個(gè)字地輸入 “姓名” ,這樣豈非太麻煩了嗎?為了讓您能夠快速地加入所有的相關(guān)數(shù)據(jù)庫(kù)常量,在“數(shù)據(jù)庫(kù)”菜單下有一個(gè)“加 入數(shù)據(jù)庫(kù)常量”功能,使用此功能可以一次性將指定數(shù)據(jù)庫(kù)的名稱及其所有字段名加入為常量。下面的講述中假設(shè)您已經(jīng)做了此準(zhǔn)備工作。

二、數(shù)據(jù)庫(kù)本身的常用操作:

1、創(chuàng)建數(shù)據(jù)庫(kù):

    欲在程序中創(chuàng)建數(shù)據(jù)庫(kù)請(qǐng)使用“創(chuàng)建”命令,如欲創(chuàng)建上面的示例工 資數(shù)據(jù)庫(kù) 工資.edb ,可以使用類似以下代碼:

   

2、打開數(shù)據(jù)庫(kù):

    欲打開指定數(shù)據(jù)庫(kù),請(qǐng)使用“打開”命令??梢酝瑫r(shí)打開多個(gè)數(shù)據(jù)庫(kù) (其數(shù)目?jī)H受 Windows 操作系統(tǒng)限制)。

    注意易語(yǔ)言的數(shù)據(jù)庫(kù)拋棄了 XBASE 的工作區(qū)概念,以便可以同時(shí)打開更多的數(shù)據(jù)庫(kù)。

3、置當(dāng)前數(shù)據(jù)庫(kù):

    系統(tǒng)內(nèi)部有一個(gè)“當(dāng)前數(shù)據(jù)庫(kù)”狀態(tài)值,它被用來指向某一個(gè)已被打 開的數(shù)據(jù)庫(kù)。絕大部分?jǐn)?shù)據(jù)庫(kù)操作命令都針對(duì)當(dāng)前數(shù)據(jù)庫(kù),譬如:記錄指針的移動(dòng)、字段的讀寫等等。用戶可以使用“置當(dāng)前庫(kù)”命令來改變系統(tǒng)中“當(dāng)前數(shù)據(jù)庫(kù)” 狀態(tài)值的指向。如:

4、關(guān)閉數(shù)據(jù)庫(kù):

欲關(guān)閉當(dāng)前數(shù)據(jù)庫(kù),請(qǐng)使 用“關(guān)閉”命令。欲一次性關(guān)閉已打開的所有數(shù)據(jù)庫(kù),請(qǐng)使用“全部關(guān)閉”命令。(如圖)

三、記錄范圍、字段范圍、數(shù)據(jù)庫(kù)表達(dá)式:

    易語(yǔ)言中很多數(shù)據(jù)庫(kù)命令都支持定義記錄范圍和字段范圍,如:“復(fù) 制記錄”命令能夠?qū)?dāng)前數(shù)據(jù)庫(kù)的記錄復(fù)制到另外一個(gè)數(shù)據(jù)庫(kù)文件,其調(diào)用格式的后半部分如下:

    復(fù)制記錄 (數(shù)據(jù)庫(kù)文件名,記錄條件,字段 范圍,… )

    其中,“記錄條件”參數(shù)即用作讓用戶定義記錄范圍,用戶需要使用 一個(gè)子語(yǔ)句來提供參數(shù)數(shù)據(jù)。如,將示例數(shù)據(jù)庫(kù)中所有姓王的員工記錄都拷貝到新數(shù)據(jù)庫(kù) 工資表.edb 中:

   
   
輸入方法:fzjl("工資表",d(#xm)?="")

    其中:讀 (#姓 名) ≈ “王” 即是用作定義記錄范圍的子語(yǔ)句,這與 XBASE 的格式基本一樣,只不過在 XBASE 中可以直接使用字段名稱,而易 語(yǔ)言由于不是解釋型語(yǔ)言,所以使用 讀 (xxx替換(其中 xxx 為 字段名)。

    假如您只想把示例數(shù)據(jù)庫(kù)中的“姓名”和“工資”字段復(fù)制過去,就 需要使用字段范圍參數(shù):

   

字段范圍參數(shù)一般都為數(shù) 據(jù)庫(kù)命令的最后一個(gè)參數(shù),以便讓用戶通過增加參數(shù)來同時(shí)提供多個(gè)字段,不過您也可以使用數(shù)組來做同樣的工作:              

假如您想把數(shù)據(jù)庫(kù)中所有 員工的工資都加上 100 元,就需要使用數(shù)據(jù)庫(kù)表達(dá)式。完成此工作的相關(guān)數(shù)據(jù)庫(kù)命 令“替換”的調(diào)用格式的后半部分如下:

    替換 (替換范圍,字段名稱或替換數(shù)據(jù),… )

    其每一個(gè)“字段名稱或替換數(shù)據(jù)”參數(shù)對(duì)應(yīng)“字段名稱”、“替換數(shù) 據(jù)”參數(shù)各一個(gè)。

    語(yǔ)句如下:

其中,#工 資 為字段名稱, (#工資) 100 即為數(shù)據(jù)庫(kù)表達(dá)式,用作提供“工資”字段替換數(shù)據(jù)的獲取方法。

可以同時(shí)替換多個(gè)字段, 如:

語(yǔ)句可以同時(shí)將“扣除”字段清零。

數(shù)據(jù)庫(kù)表達(dá)式中也可以同 時(shí)使用多個(gè)字段,如:

語(yǔ)句可以計(jì)算出每一個(gè)員工的實(shí)發(fā)工資。

    還有很多數(shù)據(jù)庫(kù)命令使用了數(shù)據(jù)庫(kù)表達(dá)式,如:

計(jì)算最大的實(shí)發(fā)工資并跳到其員工記錄:  

根據(jù)實(shí)發(fā)工資排序到 工資表.edb  

四、當(dāng)前記錄指針:

    每一個(gè)被打開的數(shù)據(jù)庫(kù)都有一個(gè)“當(dāng)前記錄指針”狀態(tài)值,它指向數(shù) 據(jù)庫(kù)中的某一條記錄,用作為一些記錄讀寫命令提供位置指示。如:“讀”、“寫”、“刪除”等等。它除了指向正常的記錄外,還可能具有以下狀態(tài)值之一:

    1首記錄前。表明當(dāng)前記錄指針已經(jīng)移動(dòng)到了數(shù)據(jù) 庫(kù)首記錄的前面,此時(shí)如果執(zhí)行讀寫當(dāng)前記錄的命令肯定會(huì)失敗,因?yàn)闊o法找到對(duì)應(yīng)的記錄讀寫位置。使用“首記錄前”命令可以測(cè)試到此狀態(tài)值;

    2、尾記錄后。表明當(dāng)前記錄指針已經(jīng)移動(dòng)到了數(shù)據(jù) 庫(kù)最后一條記錄的后面,此時(shí)如果執(zhí)行讀寫當(dāng)前記錄的命令也會(huì)失敗。使用“尾記錄后”命令可以測(cè)試到此狀態(tài)值;

    使用“取記錄號(hào)”命令可以取回當(dāng)前記錄指針?biāo)赶蛴涗浀木幪?hào)(從 1 開始)。如果為 0 ,表示在首記錄前,如果大 于最大記錄編號(hào),表明在尾記錄后。

    “到首記錄”命令可以將當(dāng)前記錄指針移動(dòng)到數(shù)據(jù)庫(kù)的首記錄上, “到尾記錄”命令可以將當(dāng)前記錄指針移動(dòng)到數(shù)據(jù)庫(kù)的最后一條記錄上?!疤^”命令可以相對(duì)移動(dòng)當(dāng)前記錄指針值。

    通過移動(dòng)當(dāng)前記錄指針,我們可以遍歷數(shù)據(jù)庫(kù)中的所有記錄:

    反向遍歷:

五、讀寫字段:

    記錄字段的讀寫均在當(dāng)前數(shù)據(jù)庫(kù)的當(dāng)前記錄處進(jìn)行,主要為以下命 令:

1、 “讀”。如:     可以返回當(dāng)前記錄處員工的姓名;
    2
、“寫”。如:     可以將當(dāng)前記錄處員工的姓名改為“張三”;
    3
、“讀字段”和“寫字段”可以讀寫非當(dāng)前數(shù)據(jù)庫(kù)內(nèi)的記錄字段;
    4
、“修改”命令可以一次性修改當(dāng)前記錄的多個(gè)字段。如:  

  語(yǔ)句可以將當(dāng)前記錄的員工姓名改變?yōu)椤巴跷濉?,工資改為 2000 ,扣除改為 100

六、添加記錄:

    使用“加空記錄”命令可以在當(dāng)前數(shù)據(jù)庫(kù)的尾部添加一條新的空記 錄。

使用“加記錄”命令可以 同時(shí)提供欲添加數(shù)據(jù)。如:  

  語(yǔ)句可以在當(dāng)前數(shù)據(jù)庫(kù)的尾部添加一 條名為“王五”,工資為 2000 ,扣除為 0 的 新員工記錄。

    使用“添加”命令可以將其它數(shù)據(jù)庫(kù)內(nèi)的記錄添加到本數(shù)據(jù)庫(kù),如:   添加 (“工資表”, , )  可以將 工資表edb 數(shù)據(jù)庫(kù)中的所有記錄添加到當(dāng)前數(shù)據(jù)庫(kù)的尾部;   語(yǔ)句可以僅添加前 10 條記錄;    語(yǔ)句可以僅添加所有未被刪除的記錄。

七、刪除記錄:

    XBASE 數(shù) 據(jù)庫(kù)一樣,記錄使用“刪除”命令刪除,但刪除后并不馬上從數(shù)據(jù)庫(kù)中清除,僅僅只被加上一個(gè)刪除標(biāo)記,依舊存在并可以正常訪問。只有當(dāng)執(zhí)行“徹底刪除”命令 后,這些被加上刪除標(biāo)記的記錄才會(huì)被從數(shù)據(jù)庫(kù)中真正清除。

    使用“是否已刪除”命令可以查看當(dāng)前記錄是否被加上了刪除標(biāo)記, 被加上刪除標(biāo)記的記錄可以使用“恢復(fù)刪除”命令取消其刪除標(biāo)記。

    使用“清空”命令可以徹底刪除當(dāng)前數(shù)據(jù)庫(kù)內(nèi)的所有記錄。

八、查找記錄:

    查找記錄有兩種方法:不使用索引和使用索引。

1、不使用索引:

    查找在示例數(shù)據(jù)庫(kù)中所有姓王的員工記錄的方法類似如下:

    到首記錄 ()    如果當(dāng)前記錄指針在首記錄上,則不需要此語(yǔ)句。
   
判斷循環(huán)首 (查找 ( (#姓名) ≈ “王”))
       
進(jìn)行所需操作。
        跳過 ()
   
判斷循環(huán)尾 ()

    注意與 XBASE 不 同的是:易語(yǔ)言的查找從當(dāng)前記錄開始。

    與易語(yǔ)言中的拼音處理類命令結(jié)合可以解決在漢字中極常見的近音搜 尋問題:

    語(yǔ)句中的“刪全部空”命令用作預(yù)先去除字段數(shù)據(jù)中可能存在的全半 角空格,如果確定所有記錄的該字段數(shù)據(jù)中都不存在空格,可以去掉此命令。

    第一條語(yǔ)句可以查找出當(dāng)前數(shù)據(jù)庫(kù)中所有姓名發(fā)音為“王屋”的員 工,如:“王五”、“王舞”等等; 第二條語(yǔ)句完成類似的工作,不過使用的是全拼拼音編碼;第三條語(yǔ)句使用的是首拼拼音編碼。

2、使用索引:

    可以使用結(jié)構(gòu)管理器預(yù)先在 工資.edb 上建立索引文件,也可以在程序中創(chuàng)建:

       

    上面的語(yǔ)句建立了一個(gè)名為 工資.enx 的索引文件,它基于示例數(shù)據(jù)庫(kù)的“姓名”字段,您也可以建立基于多個(gè)字段的索引文件。

索引只有被打開后才能被 使用。使用“新建索引”命令新建的索引會(huì)被自動(dòng)打開并設(shè)置為當(dāng)前索引。對(duì)于已經(jīng)存在的索引文件,您必須在打開數(shù)據(jù)庫(kù)時(shí)同步打開:

    此語(yǔ)句同步打開了 工資.enx 數(shù)據(jù)庫(kù)索引文件,并將其設(shè)置為當(dāng)前索引。

    在數(shù)據(jù)庫(kù)中搜尋所有姓名為“王五”的員工:

    為了解決近音漢字搜尋問題,易語(yǔ)言中可以建立發(fā)音索引文件:

          這兩條語(yǔ)句分別建立了一個(gè)基于標(biāo)準(zhǔn)讀音和一個(gè)基于南方讀音的索 引文件。

    使用發(fā)音索引文件即可進(jìn)行近音搜尋,如:   就可以找到“王五”。

    在打開數(shù)據(jù)庫(kù)時(shí)應(yīng)該使用其“索引文件表”參數(shù)同時(shí)打開所有的索引 文件,以便索引文件能夠得到及時(shí)的更新。您也可以使用“更新索引”命令來強(qiáng)制更新當(dāng)前索引文件。

九、查看數(shù)據(jù)庫(kù)命令是否執(zhí)行成功:

    大多數(shù)的數(shù)據(jù)庫(kù)命令執(zhí)行完畢后都會(huì)返回一個(gè)邏輯值,表明是否執(zhí)行 成功。但是也有一部分命令無法做到這一點(diǎn),如:“取最大值”等。

    您可以在任何數(shù)據(jù)庫(kù)命令執(zhí)行完畢后立即調(diào)用“取錯(cuò)誤碼”命令來查 看其是否執(zhí)行成功。如果成功,“取錯(cuò)誤碼”命令將返回 0 ,否則將返回一個(gè)非 0 的錯(cuò)誤值。

    另外,如果發(fā)現(xiàn)命令執(zhí)行失敗,立即調(diào)用“取錯(cuò)誤信息”命令可以取 回對(duì)應(yīng)的錯(cuò)誤信息文本,當(dāng)然是全中文的。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多