易语言数据库的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
易语言数据库应用手册
返回首页
易语言的数据库功能大部分基于 XBASE 方式,所以您如果曾经接触过XBASE 数据库系统中的任何一款,如:DBASE、FOXBASE、FOXPRO 等等,就能够相当快地了解并应用易语言的数据库。
所有易语言数据库支持命令的具体解释请在数据库命令参考手册中查看,下面介绍一些概念和编程应用知识。
一、易语言数据库文件的组成:
二、数据库的内部结构:
易语言数据库由行和列组成,如下面的数据库内容:
其中每一行被称为一条记录,每一列称为一个字段。如上面的数据库就有四条记录和四个字段。
字段具有“名称”、“类型”、“最大文本长度”三个属性,有关介绍如下:
<1>、名称:字段名称文本的长度必须在 16 个字符以内;(一个英文字母为一个字符长度,一个中文为两个字符长度)
<2>、类型:可以为以下常量值之一: 1、#字节型; 2、#短整数型; 3、#整数型; 4、#长整数型; 5、#小数型; 6、#双精度小数型; 7、#逻辑型; 8、#日期时间型; 10、#文本型; 11、#字节集型; 12、#备注型;
<3>、最大文本长度:此属性仅当字段类型为“文本型”时才有效,用作指定文本的最大可能长度,其值范围必须在 1 到 1024 之间。如果字段类型不为“文本型”,本属性无效。当写入数据到数据库中的文本型字段内时,多出的部分将被自动剪切。
三、系统中的“数据库”菜单功能:
您可以使用“数据库”菜单下的“结构编辑器”来创建一个指定结构的数据库或者修改一个已存在数据库的现有结构。然后,使用“记录编辑器”可以加入或修改初始记录数据。
值得告诉大家的是:这两个菜单功能皆通过调用 dbmanger.exe 文件(由dbmanger.e 易程序生成)来完成,dbmanger.e 源程序已经随系统一起提供,用户可以对其进行修改或者扩充,使之更能满足您的需要。
下面介绍一些数据库应用程序中常用的编程知识,首先请下载并查看一下示例工资数据库工资.edb ,其结构如下:
其中的“实发”字段在本数据库中并没有被实际使用,仅用作方便对某些命令进行举例。
一、编程前的准备工作:
强烈推荐:在开始编写数据库应用程序之前,请将程序中所需使用数据库的名称及其内所有字段名设置为常量,因为常量可以使用系统内部的输入法来很快地输入。如:上面数据库内具有一个名称为“姓名”的字段,如果此字段名已经被设置为了常量,那么在程序中需要引用它时可以简单地输入 #xm ,而如果没有设置为常量,您就必须使用 Windows 系统的输入法来一个字一个字地输入“姓名”,这样岂非太麻烦了吗?为了让您能够快速地加入所有的相关数据库常量,在“数据库”菜单下有一个“加入数据库常量”功能,使用此功能可以一次性将指定数据库的名称及其所有字段名加入为常量。下面的讲述中假设您已经做了此准备工作。
二、数据库本身的常用操作:
1、创建数据库:
欲在程序中创建数据库请使用“创建”命令,如欲创建上面的示例工资数据库工资.edb ,可以使用类似以下代码:
2、打开数据库:
欲打开指定数据库,请使用“打开”命令。可以同时打开多个数据库(其数目仅受 Windows 操作系统限制)。
注意易语言的数据库抛弃了 XBASE 的工作区概念,以便可以同时打开更多的数据库。
3、置当前数据库:
系统内部有一个“当前数据库”状态值,它被用来指向某一个已被打开的数据库。绝大部分数据库操作命令都针对当前数据库,譬如:记录指针的移动、字段的读写等等。用户可以使用“置当前库”命令来改变系统中“当前数据库”状态值的指向。如:
4、关闭数据库:
欲关闭当前数据库,请使用“关闭”命令。欲一次性关闭已打开的所有数据库,请使用“全部关闭”命令。(如图)
三、记录范围、字段范围、数据库表达式:
易语言中很多数据库命令都支持定义记录范围和字段范围,如:“复制记录”命令能够将当前数据库的记录复制到另外一个数据库文件,其调用格式的后半部分如下:
复制记录(数据库文件名,记录条件,字段范围,…)
其中,“记录条件”参数即用作让用户定义记录范围,用户需要使用一个子语句来提供参数数据。如,将示例数据库中所有姓王的员工记录都拷贝到新数据库工资表.edb 中:
输入方法:fzjl("工资表",d(#xm)?="王")
其中:读 (#姓名) ≈“王”即是用作定义记录范围的子语句,这与 XBASE 的格式基本一样,只不过在 XBASE 中可以直接使用字段名称,而易语言由于不是解释型语言,所以使用读(xxx)替换(其中 xxx 为字段名)。
假如您只想把示例数据库中的“姓名”和“工资”字段复制过去,就需要使用字段范围参数:
字段范围参数一般都为数据库命令的最后一个参数,以便让用户通过增加参数来同时提供多个字段,不过您也可以使用数组来做同样的工作:
假如您想把数据库中所有员工的工资都加上 100 元,就需要使用数据库表达式。完成此工作的相关数据库命令“替换”的调用格式的后半部分如下:
替换(替换范围,字段名称或替换数据,…)
其每一个“字段名称或替换数据”参数对应“字段名称”、“替换数据”参数各一个。
语句如下:
其中,#工资为字段名称,读 (#工资) + 100即为数据库表达式,用作提供“工资”字段替换数据的获取方法。
可以同时替换多个字段,如:
语句可以同时将“扣除”字段清零。
数据库表达式中也可以同时使用多个字段,如:
语句可以计算出每一个员工的实发工资。
还有很多数据库命令使用了数据库表达式,如:
计算最大的实发工资并跳到其员工记录:
根据实发工资排序到工资表.edb :
四、当前记录指针:
每一个被打开的数据库都有一个“当前记录指针”状态值,它指向数据库中的某一条记录,用作为一些记录读写命令提供位置指示。如:“读”、“写”、“删除”等等。它除了指向正常的记录外,还可能具有以下状态值之一:
1、首记录前。表明当前记录指针已经移动到了数据库首记录的前面,此时如果执行读写当前记录的命令肯定会失败,因为无法找到对应的记录读写位置。使用“首记录前”命令可以测试到此状态值;
2、尾记录后。表明当前记录指针已经移动到了数据库最后一条记录的后面,此时如果执行读写当前记录的命令也会失败。使用“尾记录后”命令可以测试到此状态值;