题注:Delphi初学者编写数据库程序的免费在线教程,重点讨论ADO技术。
关于此教程:它是完全针对Delphi数据库编程初学者的免费在线教程,同时也可作为想了解Delphi数据库编程艺术的人的参考。开发者将学会怎样设计、开发和测试使用Delphi和ADO技术的数据库应用程序。本教程重点讨论在数据库应用程序中使用ADO的最常用的方法: 用TADOConnection连接数据库、使用Tables和Queries、处理数据库异常、创建报表等。
先决条件: 读者应有WINDOWS操作系统的应用知识、一定的Delphi编程知识。新的初学者可先参考“Delphi编程初学者指南”(有时间我也会翻译出来)。
第一章 数据库开发基础(用Delphi)
第一节 数据库编程工具 Delphi
许多Delphi初学者以写一个象“MyNotepad”这样的程序开始Delphi的编程的,而其他的开发人员则日以继夜的编写多媒体和图形应用程序,但是他们迟早会意识到今天90%的软件都将与以某种方式存储的某种数据相互作用和影响。
有一点是毫无疑问的:Delphi在数据管理上是有效而且可靠的。建立下一代商务软件的应用程序开发人员被Delphi所吸引是有其原因的: 使用Delphi,我们可以开发软件----操作所有类型的桌面数据库,如Paradox、dBase或MS Access。使用Delphi,我们也可以获得C/S的解决方案。
用Delphi进行数据访问......只需几个代码(Data Access with Delphi...just a few words)
Delphi自带40多个预先建立的数据库组件,提供可视化的编程环境--包含集成的代码编辑器、数据库表单向导(Database Form wizard)--加速可浏览的数据库表单的创建、数据模块设计器(Data Module Designer)--用于多个表单间的数据访问共享。还有其他几个Delphi提供的数据库专用工具也能加速代码的生成和降低编程的难度。
组件面板的数据访问页(Data Access)提供用于连接数据源的组件。数据控制页(Data Controls)中的数据可视化组件用于从数据库获得数据或送数据到数据库。ADO页的组件使用ActiveX Data Objects技术通过OLE DB访问数据库信息。InterBase页的组件用于直接访问InterBase数据库。
别离开(Don't runaway)
当然,数据库编程不是简单的不值一提的。在本课程中,我们将试着带给大家关于用Delphi进行数据库编程最新的技术、难题和解决方案以及所有对我们隐藏的秘密。
在使用Delphi的各种数据组件和工具以前,我们首先应了解数据库设计的一些概念并试着设计一个简单的数据库。
第二节 建立一个新的数据库
在我们开始用Delphi与数据库进行交互之前,了解一下现代数据库的特点是一个好主意。当你看到数据库这个词的时候,通常你就会想到存储在电脑里的各种数据—甚至一个.pas文件(某些Delphi单元的源代码)也是某种数据库,其他类型的数据库是一个Word文档或一个简单的.ini文件。为了访问一个.ini文件,我们通常使用针对归类或未归类文件(typed or untyped files)的例程和技术。
建立现代数据库应用程序需要我们用关系的方法考虑数据,关系模型的基本思路是数据库有一系列的表(或关系)组成,它们可以用操作符操作并返回表或所谓的视图。简单的说,数据库最好被描述为相关联的数据的集合。一个数据库可以包含许多不同的表,表象许多格子——列称为字段(fields),行称为...行(译者加:或记录)
为了完全的了解数据库设计和关系模型的概念,我们需要学习额外的在线教程——“关系数据库设计基础”(Fundamentals of Relational Database Design)(译者加:陆续译出)。
新.....数据库(New...Database)
既然本教程的重点是介绍ADO/Access的Delphi 数据库编程方法,因此现在我们将了解怎样在MS Access中创建一个新的.mdb数据库。
如果你不曾建立过MS Access数据库,你可以参考“MS Access教程”(MS Access Tutorials)(译者加:陆续译出)。
运行MS Access,创建一个新的命名为aboutdelphi.mdb的空数据库。在设计窗口中创建三个表:应用程序(Applications)、作者(Authors)和类型(Types)。让我们看看这些表的结构:
应用程序表(Applications)包含与应用程序描述要求相匹配的字段:姓名(Name)、描述(Description)、作者(Author)、类型(Type)、规模(Size)、成本(Cost)、DateUpl和照片(Picture)。姓名(Name)、描述(Description)、作者(Author)、类型(Type)字段包含文本(Text)数据,默认为50个字符。规模字段(Size)为数字字段(Number(Single))类型——以Kb为单位存储文件的规模。成本(Cost)字段是货币字段(Currency)——如果应用程序是共享软件或商业软件。DateUpl字段是Date/Time值。照片(Picture)是一个OLE Object类型,拥有应用程序的照片(任意的)。设置姓名(Name)字段为主关键字。
作者表(Authors)包含与应用程序作者要求相匹配的字段:作者名(AuthorName)、电子邮件( Email)和网页( Web)。所有字段都包含字符数据(默认为50个字符)。设置作者名(AuthorName)字段为主关键字。
类型表(Types)仅包含一个字段:类型名(TypeName),它也是该表的主关键字。该表用于存储应用程序的类型(图形、多媒体、数据库......)。
现在我们仅需要在关系窗口建立关系,数据库的建立就完成了。
关系间应“强制参考完整性”(Enforce Referential Integrity)在“层叠更新关联记录“(Cascade Update Related Records)前打勾。