第
21
卷第
1
期
2
∞
4
年
3
月
河北建筑科技学院学报
Joumal
of
Hebei
lnstitute
of
Architectural
Sc
ience
and
Technology
文章编号:
1
∞
7
-
6743(2
∞
4)01
-∞
91-
04
提高数据访问处理速度的一种新方法
张传红,王彬丽,冀铁果
(羽北工程学院水电校区,河北部郭
056021)
Vo
1.
21
No.1
Mar.2α
)4
摘要:数据库应用与开发都有专门成熟的工具,但是在利用层层接口去访问数据库时却往往影
响了数据的访问、处理速度。尤其在工业监控以及股市财讯等领域,非常需要解决这个问题。
本文利用文本文件作为数据库存储文件,并通过构造数据访问接口来提高数据访问、处理速度,
并在
C+
+编程中实现了这种方法。
关键词:文本文件
;C+
+;数据库
中图分类号:
T
P3
11.131
文献标识码
:A
这种方法以工业监控(瓦斯报警监控)的数据处理模块为例,由于系统需要实时接收、存储并处理探
头探测的数据,数据接收频率为
50
毫秒一次,如果使用
ADO
+
Access
数据库,每次需要启动
COM
库及初
始化
Access
库要耗费大量时间来初始化数据模块。由于访问的数据量非常大,导致数据查询非常慢。而
利用文本文件实现数据的存储访问,速度快,也易于控制。
1
文本数据库结构
把文本文件分成三部分:文件信息头、记录索引、记录内容。
1)文件信息头:位于文件开始部分,长度固定为一定的字节,记录一些文件信息。这里把它的长度定
为
20
个字节,分为
5
个字段,分别记录当前记录、最大记录、文件标志、保留。
2)
记录索引:首先预定义最大记录数,紧跟文件信息头后依次存储每条记录的索引(即关键字段值)。
每个索引存储长度固定,所以所有记录索引的长度可知。
3)
记录内容:紧跟记录索引部分依次存储每条记录内容,每条记录内容前都有一个记录头标志。
2
模块设计说明
1)文本文件管理:①包含了对文本文件的所有底层操作,但不涉及对数据库的逻辑操作;②
CTxtFile
类包括了所有对类似数据库文件进行的处理;③
CTxtFileDB
从
CTxtFile
继承过来,实现了一个虚函数
Ge
tlnde
xK町,目的是可以根据不同的要求取得关键宇段的值。
2)
记录集管理:包含把文件当做→个数据库的所有处理,主要是在文件管理的基础上模拟对数据库
的逻辑操作。
CTxtRecordset
模板类把每一条数据库记录(模板类参数
TxtRecord
类为记录的数据定义)作
为-行数据操作,包括了对一般数据库记录集的操作。
CdataRecordset
是从
CTxtRecordset
继承的类,属于
更上层的操作,如查询、统计等,这里就不详细介绍了。
3)
索引管理:把数据库所有记录的关键宇与它在文件中的位置对应起来,把这部分内容放在内存中,
以提高查找速度。
CMaplndex
类实现了索引管理,封装了一个
std:
:
multimap
类型变量。
收稿日期
:2(
泊
4
-
01
-
12
作者简介:张传红(1
980
-
),女,山东省东平人,技术员,从事计算机教辅工作。