2007年2月 电 脑 学 习 第1期 基于Delphi的数据库开发通用方法研究 范广慧’ 摘 要 介绍了数据库应用程序开发的一般流程.详细介绍ADO连接的编程方去以及SQL语句的使用。指出数据模块在 编程中的重要性。 关键词Delphi ADO 数据库开发 数据模块 中图分类号TP311.11 文献标识码A 文章编号:1002—2422(2007)01.-0051-02 Research on General MethOds of Database Development Based on Delphi Fan G ̄nghui Abstract The paper introduces the general procedure of database appheation development,and discusses the programming methods of ADO linking and the using of SQL lna ̄e in detail.And it points out the importance of data med— ule in programming. Keyword Delphi ADO Database Development Data Module 数据库作为后台支持已成为信息管理中不可缺少的重 能,然后确定数据库中要保存什么样的数据信息,来设计数 要组成部分,而前台应用程序的开发语言以及环境的竞争 据库,最后对数据库进行各种编程来操作访问数据库. 也日趋激烈,比较流行的有VB、VC、Delphi等,而Delphi既 2 ADO连接访问方法 有VB编程的方便性,又有VC的功能和高效,对数据库编 程有很强的支持能力。 采用ADO技术实现数据库的访问,要用到ADO控件 页的TADODataset、TADOQuery、TADOConneetion等控件, 1数据库开发的一般流程 结合Data Access页的Dataseuree控件来对数据库进行访 数据库开发流程和一般的应用程序开发流程相似,都 问、编辑、查询等操作。各控件使用方法描述如下: 要先对系统进行需要分析,确定系统的数据流图及各种功 (1)TADOConnection组件:建立数据库与ADO组件的 试并顺利通过了。笔者对两个例子经过反复比较,发现它们 正常运行,可见这是sQL语句在Delphi中的典型应用。 的区别仅在字段名称上。于是,对原来的表做了改动,形成 3结束语 了表2。 soL的出现使人们能够以一种统一的语法结构实现对 表.2修正两个宇段名 表3修正1个宇段名 的用户表users 的用户表users 数据库的各种操作,这并不意味着语法没错就可以顺利达 字段名称 数据类型 宇段名称 数据类型 到我们的目的。本文讲解了SQL语句在Delphi中的典型应 USenl锄e 用,同时也给我们启示:SQL语句在不同的数据库开发工具 user_name 文本 文本 中可能有特殊的应用,我们要善于发现问题,解决问题。 pass—word 文本 psss word 文本 参考文献 做了上面的改动后,此题目各项功能都能正常运行。为 【1】刘瑞新,张志纲.Delphi数据库程序设计教程[M】.北 了进一步确定在Delphi中使用SQL语句时对字段名的要 京:机械工业出版社,2004一O1. 求,我又对表2进行了修正,形成了表3,结果是此题目各 [21罗云模,王珊.SQL Server数据库系统基础【M】.北京: 项功能仍能正常运行。至此,可得到如下的结论:在Delphi 高等教育出版社,2002—08. 中使用SQL语句对数据库进行插入、更改时,所操作的字 【3】虞益诚.SQL Server 2000数据库应用技术【M】.北京: 段名不能是password。 中国铁道出版社,2004—11. s0L语句在Delphi中使用的这种现象是否具有一般性 [4】郑阿奇.PowerBuilder实用教程【M].北京:电子工业出 呢?为了彻底弄清这个问题,笔者在pewerbuilder中设计了 版社,2001—03. 一个相同的题目,对上述的数据表1进行操作,结果是能够 :范广慧苏州职业大学计算机工程系软件教研室助教(215104),研究方向:信息与多媒体- 收稿日期:2006-10-26 lit 51 lit 维普资讯 http://www.cqvip.com
连接,相当于数据库别名,避免每个组件都要建立自己的连 SQLSm= …… ;//用于存放需要执行的各种SQL语句 接字符串。 ADOQuery1.Clo ̄et∥关闭查询连接才可对SQL属性进行改写 (2)ADODataSet组件:与表进行连接,用于获取和操 ADOQuery 1.SQL.clear;∥清空SQL属性编辑器 纵ADO数据,也可以执行SQL语句和存储过程,集 ADOQuery1.SQL.Add(SQLStr):∥添加SQL操作语句到它的编辑 器中 ADOTable、ADOQuery、ADOStoredProc三者功能于一身,使 ADOQuery1.ExecSQU#执行没有返回值的SQL语句 用时,设定其Connection属性为ADOConneetion组件对象。 l (3)TADOQue ̄组件:通过SQL语句对数据库中的数 ADOQue ̄I.Open:∥执行有返回值的SQL语句 据进行功能强大的查询来获取和操作数据集的元素,它通 在应用程序运行过程中,SQL命令有返回结果集的用 过TADOConneetion组件连接到数据库上。 Tquery控件的Open方法,无返回结果的用它的ExeeSQL方 (4)Data Source控件:是联系ADO组件与用户应用程 法,当无法确定是否会返回结果时,应用Try…Except模块 序的桥梁。 来设计程序,在Try部分调用Open方法,在Except部分调 数据控制(Data Controls)组件让用户能够浏览和操 用ExeeSQL方法。 作数据库,充当应用程序的用户接口。利用ADO访问数据 4数据模块的使用 库的结构层次如图1所示: 数据模块可集中维护程序中要用到的所有数据及其相 数据库 I数据库 互关系,在它界面上放置共享的数据访问组件。设计中将数 据源、数据连接、数据表等组件都放在数据模块文件中,并 l数据库驱动 系统 —]一 在工程的Options窗口中将该模块文件设为Auto Create 面 Forms中的第一行,以便在其它窗体使用之前己加载模块中 应用程序[ADO系列控件 的代码。在模块中可以定义整个工程中用到的全局变量及 一些初始化语句,如下面语句是对数据库连接相对路径的 图1 设定,写在模块的创建事件中。 3 SQL语句的使用 dm1.ADOConnecfion1.CormeetionString :='Provider=-Microsoft.Jet.OLEDB.4.O:Data Source= 3.1 SQL语言在Delphi中的实现 +extractfilepath(paramstr(O))+'plc.mdb:Persist secuJity Info= 在编程中对于数据库的操作一般是通过SQL语句来 False : 实现的,SQL语句在Delphi中是通过Tquery控件来实现 将组件放置在模块文件中方便对数据库控件实行统一 的,SQL语句通过Tquery控件传递到要访问的数据库系统 集中管理,使程序结构清晰,维护修改更加简单,其它窗体 的数据库引擎中,由数据库引擎具体执行SQL语句,以实 使用时只要其Uses后面引用数据模块的名称即可。 现对数据的操作。 5结束语 Tquery控件是一个数据集控件,具有强大的查询能 数据库开发是一项复杂的工作,即使开发人员熟练掌 力,可单表查询、多表联结查询、嵌套查询等。具有如下一 握了一些开发非数据库系统的编程技巧,仍然可能无从下 些重要特性:(1)Sql属性:包含数据库查询要执行的SQL 手,无法开发出令人满意的数据库应用系统。本文对数据库 语句;(2)Params属性:它是一个参数数组,包含一个SQL 开发的一般流程进行总结,详细分析在Delphi中用ADO和 数据库查询所需的参数;(3)RequesLive属性:指定当执行 SQL语言来访问数据库的方法,以及如何灵活地运用数据 查询时,应用程序是否希望获得一个活动的结果集。 模块编程来提高程序的开发效率。 3.2 SQL语句的编写 在Delphi中编写和使用SQL语句有静态和动态两种。 参考文献 (1)静态方式是把SQL命令作为Tquery控件的Sql属 【1】左爱群.Delphi数据库系统开发技术分析【J].武汉:武 性值进行设置,当执行应用程序时,Delphi便执行Tquery控 汉工业学院学报,2005,24(3):61-63. 件Sql属性中设置的SQL命令。 【2】周山丹,郑发正.Delphi连接数据库的两种数据引擎【J]. (-2)动态方式是在SQL语句中包含一些参数变量,在 安徽:电脑知识与技术,2005,(2):24-27. 程序中可以为这些参数赋值,在程序运行过程中,各个参数 【3】曾明如,蔡体健等.Delphi的数据库访问【J].江西:计算 值是变化的。动态SQL语句的写法也分为两种,一种是将 机与现代化,2002,(2):59-61. SQL语句写入到Tquery的Sql属性中,另一种方法是将 [4】赛奎春.Delphi数据库开发关键技术与实例应用【M】. SOL语句包含在PasCal代码单元中,如下代码所示: 北京:人民邮电出版社,2004. ・52・
因篇幅问题不能全部显示,请点此查看更多更全内容