用DLEPHI开发通讯录管理系统
开发工具:DELPHI6.0 ;
开发平台:Windows 2000 Professional ;
数据库:Access XP
(1) 软件需求:即将走入社会,已经认识的或者将要认识的人会越来越多,纸质的通讯录已经不能满足我们的要求,更新麻烦,查询困难等缺点是纸质通讯录所不能克服的。在此情况下,迫切需要一个电子版的通讯录来满足我们的需求http://www.16sheji8.cn/
(2) 软件概要:通讯录管理系统采用Access数据库作为软件的后台,用Borland公司的快速开发工具Delphi6。0开发软件的前台界面及功能实现部分,用SQL(结构化查询语言)实现对数据库中数据的查询,插入,以及删除等操作。用户可以以姓名,性别作为查询标准对数据库进行模糊查询。考虑到该通讯录为单人使用,故不具备设置登录密码以及权限设置的功能。
(3) 开发纲要:
Delphi开发工具介绍:Delphi是以Object Pascal(面向对象Pascal语言)作为编程语言的Windows平台下的快速开发工具。Delphi与VB一样,同属于可视化开发工具,也是同样以控件编程为基础。Delphi的数据库开发能力特别强大,几乎可以不用写一行代码就开发出强大的数据库应用程序。
用Delphi开发软件的整体流程如下:(1)将合适的控件加入窗体(2)修改控件属性并为控件添加响应事件的代码(3)调试软件(4)完成开发,进入维护阶段
开发过程:
(1)数据库引擎(存取规范)的选择:Delphi本身自带有BDE数据库引擎,可以用来存取很多类型的数据库,如Access,InterBase等数据库,鉴于其开发软件时设置的困难及软件发布时附带的文件容量(大约要9M多)太大,故使用微软的数据库操作引擎ADO;(2)ADO简介:ADO(Access Data Object)是微软为了统一数据库存取的标准而制订的规范,用ADO可以存取几乎任何类型的数据,如文本文件,电子邮件,关系型数据库等,ADO是以OLE DB为基础发展起来的,具有使用方便,存取效率高等特点,并且软件发布简单(在Windows平台上,只要安装了ADO的数据库驱动程序即可,也即安装了Office办公软件中的Access即可)。
(2)数据库操作方法的选择:采用Object Pascal语言内嵌SQL语言的方式,采用参数传递,变量传递的方法解决数据库的动态查询
(3)具体过程:
建立数据库:
(鉴于通讯录管理系统的数据的单一性以及容量小等特点,采用单数据表的形式建立数据库)
数据库名:AddressBook.mdb,数据表名:AddressBook
表结构:学号,姓名,性别,生日,家庭住址,家庭电话,工作单位,单位电话,手机,电子邮件,OICQ
在Delphi中实现数据库的连接
(1)从控件面板上将ADOConnection控件拖拉到窗体
(2)设置ADOConnetion的ConnectString为
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=data\AddressBook.mdb;………………………………….
(3)连接完成http://www.16sheji8.cn/
用ADOCommand,ADOQuery等控件实现时数据库的操作实现插入,修改,删除(利用Delphi内置的Action(一系列操作的集合),将相应的Action分配到相应的按钮事件上,实现数据库的操作)
数据库查询操作:利用SQL语言中的SELECT查询语句来实现,比如说查询
条件是性别为男的所有人,数据表为AddressBook,则查询语句如下(Select *
from Address where 性别=’男’) ;如果在程序中查询的条件是变化的,那么
可以用变量传递的方式解决:如在窗体上有一输入框(Edit1)供软件使用者
输入
查询的条件值,则查询功能实现代码如下:
var Condition:String //定义一个为Conditon的查询条件变量
Condition:=Trim(Form1.Edit1.Text) /*Condition的值为窗体上的输入框输入的值,Trim为去除输入的值中空格的函数*/
查询代码:’SELECT * from Addressbook where 性别=’’’+Condition+’’’’;
//用字符串相加的形式来实现变量传递,Delphi中用’’’’表示单引号’;
(4) 软件界面:
为美化界面,采用Windows XP的菜单界面,并且使用多页面切换的软使
用形式,节省了软件的使用空间,也为用户使用软件提供了方便;为方用
户使用,提供了完备的在线帮助系统
(5) 开发重难点:
软件查询功能,尤其是根据日期进行查询的功能的实现
(1) 日期型数据的比较
(2) 日期型数据查询的处理
解决办法:(1)将日期型数据的值转化为字符串进行比较
(2)使用’# ‘字符将日期型数值的左右括起来(Delphi中如此做表示其值是日期型数据)