TRIP数据库编程实例

上传人:飞*** 文档编号:28276666 上传时间:2018-01-16 格式:DOC 页数:13 大小:289.50KB
返回 下载 相关 举报
TRIP数据库编程实例_第1页
第1页 / 共13页
TRIP数据库编程实例_第2页
第2页 / 共13页
TRIP数据库编程实例_第3页
第3页 / 共13页
TRIP数据库编程实例_第4页
第4页 / 共13页
TRIP数据库编程实例_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《TRIP数据库编程实例》由会员分享,可在线阅读,更多相关《TRIP数据库编程实例(13页珍藏版)》请在金锄头文库上搜索。

1、1第 7 章 TRIP 数据库编程实例 教 学 提 示 本章主要在前面章节讲过的 TRIP 数据库编程的基础上,以设计开发一个小型电子图书管理系统为实例,全程详细介绍 TRIP 数据库编程。这将是对前面章节所讲内容的综合运用。 教 学 目 标 熟悉并掌握 TRIP 数据库编程的一般过程,并通过上机实践,完成基于 TRIP 数据库的小型系统的开发。7.1 实例描述很多学生大概都有过提前到学校阅览室或图书馆排队等候的经历,因为去晚了不是没有书看就是根本没有了座位,而且所有图书、期刊以及音像制品数量有限,人工查找速度很慢,也容易出错。为此,我们需要开发出集学校图书管理、期刊软件管理以及在线信息发布、

2、在线阅读等为一体的综合信息门户电子图书馆。顾名思义,电子图书馆即是将传统的图书馆、阅览室提升为数字化的电子图书馆。利用电子技术,在电子图书馆中,我们能很快地从浩如烟海的图书中,查找到自己所需要的信息资料。这种图书馆,保存信息量的时间要长得多,不存在霉烂、生虫等问题。利用网络,在远在几千里、万里的单位、家中,都可以使用这种图书,效率极高它利用光盘这海量存储器、能够存储比传统图书高几千倍的信息,比微缩胶卷要多得多,而且包括图象、视频、声音,等等。 管理员通过客户端将所有的图书、期刊和软件制品录入数据库,并通过网络实现共享。用户登录到电子图书管理系统,只需在计算机上通过鼠标点击即可查看所需的信息资料

3、,并可随时保存。7.2 系统任务的提出和设计思路电子图书管理软件的主要任务有: 向系统中添加、删除电子图书资源用户向系统的电子图书数据库指定电子书文件并输入电子书的基本信息后添加记录,或指定电子图书数据库记录后将其删除。2 电子图书的检索用户向系统输入检索条件后可检索到相应电子书记录。 电子图书原文浏览对于多种不同格式的电子图书原文,用户可通过系统进行浏览。 电子图书的文本浏览和编辑当电子图书文件记录输入数据库后,用户可以通过系统对图书原文的文本进行浏览和编辑。 登录系统合法用户可经过系统验证登录到系统,进行系统的各种操作。对于数据库应用系统来说,其他方面的应用设计相对比较容易,尤其是目前快速

4、开发工具的广泛使用,使我们只要在设计阶段将数据库设计好,并把界面设计出来,把每种功能详细的流程控制描述清楚了,程序员就可以进行编码了。本系统的功能流程比较简单,在此不用说明。因此,电子图书管理系统的分析与设计我们将从数据库设计和界面设计着手进行。7.2.1 数据库设计本系统仅实现简单的电子图书管理功能,所以数据库结构非常简单,仅包含一个库。库中字段应包含两方面的信息:电子书的基本信息(标题、作者、备注和日期)以及电子书文件的信息(文件名称、文件二进制字段、文件抽取文本字段和文件大小) 。数据库名:ebook。该数据库的结构如所示。表 7- 1 ebook 数据库结构字段名称 字段数据类型 字段

5、描述FILE_NAME 词组 电子书原文件名FILE_EXTRACT 文本 电子书原文件中抽取出来的文本FILE_SIZE 整数 电子书原文件大小(字节数)FILE_STRING 二进制 电子书原文件字段TIT 词组 电子书标题AUT 词组 电子书作者NOTE 文本 电子书简要说明DAT 日期 电子书添加到数据库的日期7.2.2 界面设计系统的界面设计如 图 7. 1 所示。主界面主要由一个 Tab 控件和一个工具栏组成。Tab控件由“检索列表” 、 “查看信息” 、 “阅读原文” 、 “编辑文本”四个选项卡组成。 “检索列表”选项卡:在工具栏的检索条件编辑框输入检索条件并单击检索按钮,则列表

6、显示检索结果。如检索条件为空,则列表为全部记录。3 “查看信息”选项卡:显示当前记录的信息,包括基本信息和原文件信息。还可以对信息进行修改。 “阅读原文”选项卡:显示当前记录的原文件。 “编辑文本”选项卡:显示当前记录的原文件抽取文本。并可对抽取文本进行编辑。 检索条件编辑框: 输入检索条件。 检索按钮:单击后进行检索。 导航按钮:单击后对当前记录前进一条或后退一条。 添加按钮:单击后弹出添加记录窗体。 删除按钮:单击后删除当前选定记录。 退出按钮:单击后退出系统。图 7. 1 系统主界面7.3 主要模块及实现根据系统的任务,我们可以把系统设计为如 图 7. 2 所示的功能结构。4图 7. 2

7、 电子书管理系统功能结构图7.3.1 数据库接口类 DbKit本例将和数据库相关的创建连接会话、添加记录、更新记录、删除记录、检索数据库等操作封装在数据库接口类 DbKit 中。下面将介绍这个类的实现。数据成员:private string dbName;/打开的数据库名private TdbRecordSet rSet; /检索结果记录集private TdbSession session; /连接数据库的会话private TdbRecord record; /记录private Dictionary dicFldTit; /数据库字段名和列标题字典主要成员函数:/ 创建连接数据库的会话/

8、 服务器地址/ 数据库端口public void createSession(string server, int port);/ 登录数据库/ 用户名/ 密码/ 返回登录结果public int login(string userName, string passWord);/ 得到记录集中某序号记录的某字段值/ 记录集中的序号(非记录号)/ 字段名/ 字段值public string getFieldValue(int sid,string fieldName);电子书管理系统添加删除修改检索查看详细登录5/ 得到记录集中某序号记录的某二进制字段值/ 记录集中的序号(非记录号)/ 二进制字

9、段名/ 二进制字段值 public byte getStringField(int sid, string fieldName);/ 记录集赋值(含除String类型字段外的所有字段)/ 执行查找的CCL命令/ 查找起始位置/ 查找结束位置/ 得到数据的顺序,正向或逆向(true) public void search(String searchCCl, int from, int to, bool reversed);/ 返回记录集对应的DataTable(按指定列返回)/ 会话/ 数据列名/ 执行查找的CCL命令/ 查找起始位置/ 查找结束位置/ 得到数据的顺序,正向或逆向(true)/

10、DataTable数据public DataTable search(List fields, String searchCCl, int from, int to, bool reversed);/ 由记录集和字段列表返回DataTable/ 字段列表/ DataTable类型数据public DataTable getDataTable(List fieldList);/ 返回查询的记录总数/ 命中记录数public int getRecordsCount()return RSet.QueryRecords 要提交的记录6/ 布尔型public bool commitRecord();/

11、数据库倒排/ 布尔型public bool indexDB();/ 返回数据库设计器/ 数据库名/ 数据库设计器public TdbDatabaseDesign getDatabaseDesign(string dbName);/ 生成一个指向某数据库的记录实例(空)public void createRecord()tryrecord = new TdbRecord(session);record.Database = dbName;catch (TdbException e)MessageBox.Show(e.Message);/ 向记录record插入一个字段一个值/ 字段名/ 字段值/

12、 布尔型public bool addOneFieldToRecord(string fieldName, string value);/ 插入字符串字段(String类型字段相关的4个字段)/ string字段名/ 抽词字段名/ 文件名字段名/ 文件大小字段/ 源文件/ 布尔型7public bool addStringFieldToRecord(string stringFieldName, string textFielddName, string fileNameFieldName, string fileSizeField, FileStream fs);/ 删除一条记录/ publ

13、ic void deleteRecord()record.Delete();7.3.2 登录模块本系统使用 TRIP 系统安全机制进行登录验证。主要代码:private void btnLogin_Click(object sender, EventArgs e)trymForm.MyDb.createSession(Server.Text, Convert.ToInt32(Port.Text); /创建会话if (User.Text != ebook)MessageBox.Show(用户名错误,请重新输入);User.Text = ;Password.Text = ;User.Focus()

14、; elseint loginRes = mForm.MyDb.login(User.Text, Password.Text); /登录switch (loginRes)case 1:this.DialogResult = DialogResult.OK;break;case 0:MessageBox.Show(用户名错误,请重新输入);User.Text = ;8Password.Text = ;User.Focus();break;case -1:MessageBox.Show(密码错误,请重新输入);Password.Text = ;Password.Focus();break;defa

15、ult:MessageBox.Show(登录异常,程序将退出);this.DialogResult = DialogResult.Abort;break;catch (System.Exception ex)MessageBox.Show(ex.Message); 7.3.3 记录添加模块本模块向数据库添加新的电子书记录。主要代码:private void btn_saveRec_Click(object sender, EventArgs e)trymForm.MyDb.createRecord();mForm.MyDb.addOneFieldToRecord(TIT, title.Text);mForm.MyDb.addOneFieldToRecord(AUT, author.Text);mForm.MyDb.addOneFieldToRecord(NOTE, note.Text);mForm.MyDb.addOneFieldToRecord(DAT, date.Text);/处理电子文件FileStream fs = null;if (!file.Text.Equals()9fs = new FileStream(file.Text, FileMo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号