第6卷刊小issn100103x19943,紧科技大学学报 Vol.16 1994年10月 Journal of University of Science and Technology Beijing 0ct.1994 图形环境下的数据库操作 雷金荣 李国乔 (北京科技大学) 摘要本文重点讨论在图形环境下如何直接对dBASE【/N数据库进行操作,并且在图形 环境下实现部分BASE数据库管理系统的功能,如追加记录、查询数据、图形与数据交互显示、 读取数据以及写人数据等功能。 关键词图形文件,数据库,操作 Operation of Data Base in the Graphic Operation System Lai Jinrong Li Guogiao ABSTRACT This paper discuss how to operate data base files directly in the graphic operation system.The operation include appending record,seeking record,displaying graphic and data interactively,reading record and writing record or so. KEY WORDS graphic,date base,operating 在图形环境下对数据库进行操作是实现自动绘图的基础,目前国内CAD水平主要停 留在手工制图上的原因主要在于没有很好地做到在图形环境下直接对数据库进行操作,本 论文就此问题作一深人研究,以做到在图形环境下能对数据库文件直接进行操作。在图形 环境下对数据库进行操作的功能模块是基于C语言环境下开发的,此功能模块实际是一个 图表与数据库的联接模块,在图形环境下使用的所有数据库文件中,都要设置一个联接标 示字段MSLINK,此字段为数值型,长度为10,且不含小数位。仅作联接标示用。还要建 立一个关键字段为MSLINK的检索文件,以便查询用。此检索文件和数据文件要求放在同 一子目录中,检索文件名要求和数据文件相同,只是扩展名不同。检查文件的扩展名为 MSL,或者为NDX;数据文件的扩展名为.DBF,即需要建立一个NAME.NDX或 NAME.MSL的检索文件。这些操作都是在dBASE环境下完成,使用此检索文件。当添 加一个数据联接到元素末端时,为了确定数据文件的记录将要添加两个值到联接中,一个 ·1994-07-15收稿
第 卷增刊 年 月 北 京 科 技 大 学 学 报 图形环境下 的数据库操作 雷金荣 李国乔 北京科技大学 摘 要 本文重点讨论在 图形环境下如何直接对 数据库进行操作 , 并且在 图形 环境下实现部分 数据库管理系统的功能 , 如追加记录 、 查询数据 、 图形与数据交互显示 、 读取数据以 及写人数据等功能 。 关键词 图形文件 , 数据库 , 操作 上召泛了动 朋 初 , , , , , 在 图形 环境下对数据库进行操作是实现 自动绘图的基础 , 目前 国 内 水平主要停 留在手工制图上 的原因主要 在于 没有很好地做到在 图形环境下直接对数据库进行操作 , 本 论文就此问题作一深人研究 , 以做到在 图形环境下 能对数据库文件直接进行操作 。 在 图形 环境下对数据库进行操作的功能模块是基于 语言环境下开发的 , 此功能模块实 际是一个 图表与数据库的联接模块 , 在 图形环境下使用 的所有数据库文件 中 , 都要设置一个联接标 示字段 , 此字段为数值型 , 长度为 , 且不含小数位 。 仅作联接标示 用 。 还要建 立 一个关键字段为 的检索文件 , 以便查询用 此检索文件和数据文件要求放在 同 一 子 目录 中 , 检索文件名要求和 数据文件相 同 , 只是扩 展 名不 同 。 检查 文 件 的扩展名 为 , 或 者 为 数 据 文 件 的 扩 展 名 为 , 即 需 要 建 立 一 个 或 的检索文件 。 这些操作都是在 环境下完成 , 使用此检索文件 。 当添 加一个数据联接到元素末端时 , 为 了确定数据文件的记录将要 添加两个值到联接 中 , 一个 一 一 收稿 DOI :10.13374/j .issn1001-053x.1994.s3.053
面金荣等:图形环境下的数据库操作 ·81· 值是团体号,此值是在数据设置提示下被指定的,用来确定数据库的唯一性;另一个值是 数据记录的NSLINK关键字段值,此值用来确定数据库中指定的记录。系统始终跟踪 MSLINK的值。当新记录被添加到数据库文件且被联接到图形元素时,将设置唯一的值到 MSLINK字段中。 1 dBASEⅢPLUS用户界面设置 在图形环境中使用dBASE PLUS,首先要建立数据库以及与之对应的一个或多个检 索文件。检索文件的作用是在图形环境下确定数据记录的位置,以便进行查询:而且要求 建立一个与数据库相对应的屏幕格式文件,此格式文件的作用是显示和编数据库文件中的 记录。 2控制文件 控制文件的作用是把设计文件与数据文件及其支持文件联接起来,同一控制文件能用 来把多个设计文件与共同的数据环境联接起来。控制文件确定了把文件与数据文件及其所 需求的补充文件联系起来所要求的所有信息。 (1)母控制文件 首先建立一个安全检查数据文件结构,作为母控文件,需建立新的控制文件时,只需 用DOS的COPY命令生成。母控文件起名为MSCTRL.DBF,实际此文件的结构也是一个 dBASE重PLUS数据结构文件,其结构是确定的,其具体格式将在后面作详细说明。 (2)dBASE系统变量 在使用之前,还需设置一个系统变量MS-dBASE,此系统变量指定搜索数据文件的路 径,缺省情况下,此变量设置为MS-dBASE=\dBASE,使用这个路径确定没有指定路径的 在图形环境下使用的任何数据库文件;而且,如果想在网络系统下运行,可把网络信息路 径设置到此变量中去,即可在网络系统下运行。 3联接方式 设置不同的联接方式是为了达到不同的功能,在图形环境下,与dBASE PLUS联接, 设置了4种可选择的联接方式,分别为NEW、DUPLICATE、INFORMATION和NONE 4种联接方式。根据特定的需要,可以任意选择其中一种联接方式以满足特定的需要,联接 方式也被保存在系统变量LKGNMD中。 4种联接方式的特征概述如表1。 (1)NEW联接方式 在实际应用中多数是NEW联接方式。在NEW联接方式中,激活的记录为一个“原 始”的记录,并且不是代表数据文件中已经存在的记录。联接每建立一次,激活的记录作 为一个新记录被复制并且加到激活的数据文件中去。图形元素随后联接到新的记录中去
雷金荣等 图形环境下 的数据库操作 值是 团体号 , 此值是在数据设置提示 下被指定 的 , 用来确定数据库的唯一性 另一个值是 数据记录 的 关 键 字段 值 , 此 值用 来 确定 数 据 库 中指 定 的记 录 。 系 统始 终 跟 踪 的值 。 当新记录被添加到数据库文件且被联接到 图形元素时 , 将设置唯一的值到 字段 中 。 用户界面设置 在 图形环境 中使用 互 , 首先要建立数据库以及与之对应的一个或多个检 索文件 。 检索文件的作用是在 图形环境下确定数据记录的位置 , 以便进行查询 而且要求 建立一个与数据库相对应 的屏幕格式文件 , 此格式文件的作用是显示和编数据库文件 中的 记录 。 控制文件 控制文件的作用是把设计文件与数据文件及其支持文件联接起来 , 同一控制文件能用 来把多个设计文件与共同的数据环境联接起来 。 控制文件确定 了把文件与数据文件及其所 需求的补充文件联系起来所要求的所有信息 。 母控制文件 首先建立一个安全检查数据文件结构 , 作为母控文件 , 需建立新 的控制文件时 , 只需 用 以〕 的 命令生成 。 母控文件起名为 , 实际此文件的结构也是一个 班 数据结构文件 , 其结构是确定的 , 其具体格式将在后面作详细说明 。 系统变量 在使用之前 , 还需设置一个系统变量 一 , 此系统变量指定搜索数据文件的路 径 , 缺省情况下 , 此变量设置为 一 一 , 使用这个路径确定没有指定路径 的 在 图形环境下使用 的任何数据库文件 而且 , 如果想在 网络系统下运行 , 可把 网络信息路 径设置到此变量 中去 , 即可在网络系统下运行 。 联接方式 设 置不 同的联接方式是 为 了达到不 同的功能 。 在 图形环境下 , 与 联接 , 设置 了 种可选择的联接方式 , 分别为 、 、 和 种联接方式 。 根据特定的需要 , 可 以任意选择其中一种联接方式 以满足特定 的需要 , 联接 方式也被保存在系统变量 中 。 种联接方式的特征概述如表 。 联接方式 在实际应用 中多数是 联接方式 。 在 联接方式 中 , 激活 的记录 为一个 “ 原 始 ” 的记录 , 并且不是代表数据文件 中已经存在的记录 。 联接每建立一次 , 激活 的记录作 为一个新记录被复制并且加到激活的数据文件 中去 。 图形元素随后联接到新的记录 中去
·82· 北京科技大学学报 表1联接方式及特征 联接方式 是否为新记录 说明 NEW YES 加到每个联接中都为新记录 DUPLICATE NO 所有的联接点都是同一记录 INFORMATION NO 与上项相似,并设置信息特征 NONE NO 没有联接产生 数据文件操作命令FND用来确定一个已经存在的记录并建立一个记录的备份作为激 活记录。这种方式使用已经存在记录作为激活新记录的样板或基。联接步骤如下: ①搜索数据库表; ②执行FIND命令,确定记录; ③使用EDIT AE命令进行编辑,加人所需信息: ④使用ATTACH AE命令把激活的团体作为一个新的记录加入到数据库表中,并且联 接此记录到图形元素中。 (2)DUPLICATE联接方式 此联接方式是联接每个图表元素到同样的记录表中。当有必要仅仅把图形元素和一般 记录类型联接而不是特定的记录类型的具体联接时,此种联接方式是很有用的。当块输出 时,输出数据文件包括每个记录的复制。被联接记录的一个复制被加到这个块中出现的每 个联接的输出表中。因此,它在跟踪原始数据方面是很有用的,因此输出表和联接包括有 同样的记录。 (3)INFORMATION联接方式 INFORMATION联接方式和DUPLICATE联接方式相似的,除了在联接中设置信息 特征位外,每运行此联接时,都需检查特征位。 (4)NONE联接方式 当联接为NONE时,表示没有联接加到设计图形中去,表示一个空联接。 4在图形环境下对数据库操作的主要命令 在图形环境下,对数据库操作的主要命令是与dBASE■PLUS的主要命令是一致的, 主要包括激活记录命令(ATTACH AE)、创建记录命令(CREATE AE)、定义记录命令 (DEFINE AE)、去掉数据联接命令(FENCE DETTACH)、块输出命令(FENCE REPOTE)、记录查询命令(FINE)、显示数据记录命令(REVIEW)、建立控制文件命令 (SET CONTROL)、删除记录命令(SET DELETE)、定义数据文件命令(SET DATEBASE)和显示激活记录命令(SHOW AE)、读数据库文件记录命令(DBREAD)以 及写数据库文件记录命令(DBWRITE)等。 5数据文件格式 数据文件联接的格式比较简单,下面式C语言描述的联接格式:
北 京 科 技 大 学 学 报 裹 联接方式及特征 联 接 方 式 是否为新记录 说 明 加到每个联接 中都为新记录 所有的联接点都是 同一记录 与上项相似 , 并设置信息特征 没有联接产生 数据文件操作命令 用来确定一个 已经存在的记录并建立 一个记录 的备份作为激 活记录 。 这种方式使用 已 经存在记录作为激活新记录的样板或基 。 联接步骤如下 ①搜索数据库表 ②执行 命令 , 确定记录 ③使用 命令进行编辑 , 加人所需信息 ④使用 命令把激活 的团体作为一个新的记录加人到数据库表 中 , 并且联 接此记录到 图形元素中 。 联接方式 此联接方式是联接每个图表元素到 同样的记录表 中 。 当有必要仅仅把 图形元素和一般 记录类型联接而不是特定 的记录类型 的具体联接时 , 此种联接方式是很有用的 。 当块输 出 时 , 输出数据文件包括每个记录的复制 。 被联接记录的一个复制被加到这个块 中出现的每 个联接的输 出表中 因此 , 它在跟踪原始数据方面是很有用的 , 因此输 出表和联接包括有 同样的记录 。 联接方式 联接方式和 联接方式相似 的 , 除 了在联接 中设置信息 特征位外 , 每运行此联接时 , 都需检查特征位 。 联接方式 当联接为 时 , 表示没有联接加到设计 图形 中去 , 表示 一个空联接 。 在图形环境下对数据库操作的主要命令 在 图形环境下 , 对数据库操作的主要命令是与 的主要命令是一致的 , 主要包括激活记录命令 、 创建记录命令 、 定义记录命令 、 去 掉 数 据 联 接 命 令 、 块 输 出 命 令 、 记录查询命令 、 显示数据记录命令 、 建立控制文件命令 、 删 除 记 录 命 令 、 定 义 数 据 文 件 命 令 ‘ 和显示激活记录命令 、 读数据库文件记录命令 以 及写数据库文件记录命令 等 。 数据文件格式 数据文件联接的格式 比较简单 , 下 面式 语言描述 的联接格式
雷金荣等:图形环境下的数据库操作 ·83· typedef struch { unsigned word:8;/*word to follow in linkage * unsigned class:4 ;/linkage faimly class * unsigned user:1 ;/boolean:user data linkage * unsigned nodified:1 ;/boolean:user linkage has * ;/*been modified*/ unsigned romote:1;/*boolean:remote linkage * unsigned into:1 ;/boolean:information linkage * unsingned short /user ID number * primary-id; unsigned short /secondary ID number * secondary-id; unsigned short entity /entity number * unsigned long mslink;/mslink field value * short pad [2];/*user linkage must be amultiple of words * dB-link 数据文件的结构如下表,“word to follow”是确定跟在用户数据联接尾部的字节数目; class为联接簇,一般不使用并设置为0;I,R和M特征字节一般不被使用并设置为0:U 特征字节指定此联接为用户数据,并且总是处于设置状态,如表2所示。 表2数据文件结构表 个 M U CLASS WORD TO FOLLOW PRIMARY ID=0X1971 SECONDARY ID=OXF81 ENTITY NUMBER MSLINK KEY NULL NULL 原始的D值被设置为OX1971,第二个D值被用来辅助指定这个联接并设置为 OXF81;ENTITY NUMBER指定这个联接参考的数据文件。为了确定数据库文件,控制文 件必须被读出来与团体号代表的文件进行比较。MSLINK KEY指定数据库文件中的记录, 此值是一个无符号长型数。 6 数据控制文件的格式 数据控制文件功能是把设计文件与数据文件及其所需补充文件联接起来。此数据文件 的格式是dBASE PLUS数据格式,在此数据库文件中对每个联接的数据库文件都有一个记
雷金荣等 图形环境下的数据库操作 广 , ‘ ‘ , ‘ ‘ ‘ , , 二 ‘ , ‘ , 卯 , ‘ 一 , ‘ 一 , ‘ , , ‘ 〕 , 吧 , 一 数据文件的结构如下表 , “ ” 是确定跟在用户数据联接尾部的字节数 目 为联接簇 , 一般不使用并设置为 叭 , 和 特征字节一般不被使用并设置为 特征字节指定此联接为用户数据 , 并且总是处于设置状态 , 如表 所示 。 衰 数据文件结构裹 原始 的 值被 设 置 为 , 第二 个 值被 用 来 辅 助 指定 这 个联 接并设 置 为 指定这个联接参考 的数据文件 。 为了确定数据库文件 , 控制文 件必须被读出来与团体号代表的文件进行 比较 。 指定数据库文件中的记录 , 此值是一个无符号长型数 。 数据控制文件的格式 数据控制文件功能是把设计文件与数据文件及其所需补充文件联接起来 。 此数据文件 的格式是 数据格式 , , 在此数据库文件中对每个联接的数据库文件都有一个记
·84· 北京科技大学学报 录存在。此文件结构如表3。 表3控制文件结构表 FLELD FIELD NAME TYPE WITH DEC DATABASE C 30 2 ALIAS C 15 0 ENTITY N 5 4 FORMAT 30 5 REPORT C 30 6 INDEX1 C 30 7 INDEX2 C 30 黄*TOTAL*米 171 (1)DATABASE 要求填写被联接的dBASE■PLUS数据文件名的字段,要求指定路径,如果路径没有 指定,缺省的路径将由系统变量NS-dBASE来确定。 (2)ALIAS 此字段要求填写数据文件的别名,在图形环境下别名或团体号都可用于指定数据文件。 (3)ENTITY 此字段要求填添写一个整数(从1到65535之间)作为数据文件的团体号,它和ALIAS 具有同样的作用,用来指定特定的数据文件,对于每一个和特定设计文件一起使用的数据 库文件,团体号必须是唯一的。 (4)FORMAT 这是一个要求填写与数据库文件相适应的屏幕格式文件的字段,要求指定路径,如果 路径没有指定,使用系统变量MS-DBASE所确定的路径。 (5)REPORT 这是一个定义与数据文件相适应的输出数据文件名的字段,路径的处理同FORMAT 字段。 (6)INDEXI 这是一个要求与数据文件相适应的检索文件名的字段,路径的确定同FORMAT字段
北 京 科 技 大 学 学 报 录存在 。 此文件结构如表 。 表 控制文件结构表 , , , , 要 求填写被联接的 数据文件名的字段 , 要求指定路径 , 如果路径没有 指定 , 缺省 的路径将 由系统变量 一 来确定 。 此字段要求填写数据文件的别名 , 在图形环境下别名或 团体号都可 用于指定数据文件 。 此 字段要求填添写一个整数 从 到 之间 作为数据文件的团体号 , 它和 具有 同样的作用 , 用来指定特定的数据文件 , 对于每一个和 特定设计文件一起使用 的数据 库文件 , 团体号必须是唯一的 。 这是一个要求填写 与数据库文件相适应 的屏幕格式文件 的字段 , 要求指定路径 , 如果 路径没有指定 , 使用系统变量 一 所确定的路径 。 这是一个定义与数据文件相适应 的输 出数据文件名的字段 , 路径 的处理 同 字段 。 这是一个要求与数据文件相适应 的检索文件名 的字段 , 路径 的确定 同 字段