DELPHI基础教程:Delphi开发数据库应用程序概述(一)[2]

DELPHI基础教程:Delphi开发数据库应用程序概述(一)[2],第1张

其他语言

用于开发数据库应用程序的语言中 还可以使用目前数常见的 面向对象程序设计 (OOP)语言 如C++ Objact Pascal等 OOP代表了一种完全不同的程序设计方法 在这种程序设计方法中 活动被定义为在 对象 上发生的 *** 作 而不是作为一系列过程来定义的 在数据库应用程序中使用OOP语言的情况正在不断增加

开发数据库应用程序使用的另一种语言是 宏 语言 宏语言不是一种完全的程序设计语言 它实际上是一个用户手工输入的表 这个表被输入到应用程序中 以便自动执行一定的任务 对于某个特定应用的高级语言 宏语言通常可以在低档DBMS软件中或数据库服务器的前端中找到

最后 还有一种 Query By Example (QBE 范例查询)语言 严格地讲QBE不是一种语言 它是面向用户提供了一个或多个空表的界面 这些空表对应于数据库中的表 用户可以通过键盘选择需要查询的列 并在适当的列中填入条件从而定义查询的检索条件 然后DBMS就把QBE转换成相应的动作 以完成用户要求的查询任务

Delphi的数据库特性及功能简介

直到目前为止 计算机软件的开发分为两个不同的体系 其中一个体系是使用传统的程序设计语言(如Pascal Basic和C等)开发数值控制 数值运算等软件 围绕它们的重点是算术 数据结构以及近年产生的面向对象技术 另一个体系则是通用的数据库管理软件领域(数据库应用程序的开发) 这两个体系的发展都极为迅猛 但是二者并没出现混合渗透迹象 如果使用数据库语言进行传统的算术编程 虽然也能完成相应的功能 但是其编程过程可能极为复杂 如果使用传统的编程语言进行数据库编程 通过调用专用的数据库应用程序接口函数和过程 利用这些函数和过程提供的功能 可能也能做得比较完善 但这做起来大多是极其困难的 而Delphi结合了两个体系的优点 它结合了传统的编程语言Object Pascal和数据库语言的强大功能 它即可以用于传统的算术编程又可以用于数据库编程 特别是Delphi具有强大的数据库功能 利用Delphi的数据库工具 我们根本不需要编写任何Object Pascal代码便可以创建一个简单的数据库应用

Delphi是Borland公司于 年底发布的用于开发数据库应用程序的工具 它是面向对象的 它是目前开发客户/服务器数据库应用程序的强有力的工具 Delphi在Window 以上版本的系统环境下运行 目前具有两个版本 Delphi的标准版本和客户/服务器版本 标准版本包含一个Borland Database Engine的局部拷贝 它允许用户创建能访问dBASE Paradox和Local InterBase 服务器的数据库应用 它还支持具有 ODBC 接口的数据库 Delphi的客户/服务器版本包括Borland SQL Link 它能直接访问 ORACLE SyBase 和Microsoft SQL Server Informix以及InterBase数据库服务器

Delphi可以访问多种数据库管理系统的数据库 凭借窗体(Forms)和报表(Reports) BDE(Borland Database Engine)可以访问诸如Paradox dBASE 本地InterBase 服务器的数据库 也可以访问远程数据库服务器上的数据库(如ORACLE SyBase Informix等客户/服务器数据库中的数据库) 或任何经ODBC(Open Database Connecticity) 可访问的数据库管理系统中的数据库

Delphi的数据库特性

跟其他的应用程序一样 Delphi提供了许多部件以方便地创建数据库应用程序 数据库对象的数据成员既可在设计阶段设置 也可在运行阶段通过程序代码进行设置 Delphi的部件板上提供了两页数据库应用程序开发中所要使用的部件

数据访问页(Data Access Page)上的部件用于直接访问数据库中的数据库表

数据控制页(Data Control Page)上的部件用来与用户交互 显示 修改数据库中的数据

数据库应用程序首先是利用Delphi提供的数据库部件与BDE建立联系 然后再通过BDE与数据库联系 下图阐述了Delphi的数据库工具和部件 Delphi数据库应用程序与BDE 数据源之间的关系

下表概括了Delphi的数据库特性

表 Delphi的数据库特性

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

工具和部件   主 要 用 途

──────────────────────────────────────

Data Access Components  访问数据库 数据库表 存贮过程等

──────────────────────────────────────

Data Control Components  与用户交互 提供显示 修改数据库中数据的界面

──────────────────────────────────────

Database Desktop(DBD)  建立 索引 查询数据库表以及访问 编辑来自各数据中的数据

──────────────────────────────────────

ReportSmith  建立 浏览和打印数据库表中的数据

──────────────────────────────────────

Borland Database Engine  数据库应用通过BDE访问dBASE Paradox数据库中的数据(BDE)  和本地InterBase数据库服务器中的数据

──────────────────────────────────────

BDE Configuration  建立和管理BDE与数据库建立连接时所使用的数据库的

Utility  别名

──────────────────────────────────────

Local InterBase Server  它是一个单用户 多例程的本地SQL数据库服务器 可在单机环境下用来开发或测试客户/服务器数据库应用程序 然后再将之扩展成一个访问远程数据库服务器如ORACLE SyBase Informix等

──────────────────────────────────────

InterBase SQL Link  连接Delphi数据库应用程序一本地InterBase服务器的驱动程序

Delphi上述这些特性使得我们创建数据库应用程序通过BDE能够很灵活地与 dBASE Paradox Local InterBase数据库服务器进行连接并可以方便地访问其中的数据 我们在创建一个简单的数据库应用时通过使用Delphi提供的上述工具和部件甚至可以不需编写任何程序

BDE被自动地包含在Delphi中 因此 我们在创建数据库应用程序时 不必关心BDE的有关内容 Delphi的安装程序自动为Paradox dBASE和本地InterBaseServer 安装相应的驱动程序 并建立了有关的配置 DBE Configuration Utility 可以建立应用程序与数据库的连接信息 还可以为数据库设置别名

下表列出了Delphi开发Client/Server应用程序的有关特性 这些特性扩展了 Delphi访问远程数据库的功能 如SQL数据库服务器(ORACLE SyBase Informix Microsoft SQL Server InterBase)

表 Delphi Client/server数据库特性

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

工 具   主 要 用 途

─────────────────────────────────

SQL Drivers  SQL Drivers中的SQL link和ReportSmith为Delphi数据库应用程序提供了访问远程SQL服务器的驱动程序 如访问ORACLE SyBase Microsoft SQL server Informix Intermix

 ─────────────────────────────────

lishixinzhi/Article/program/Delphi/201311/25183

值得指出的是在绝大多数数据库应用中 一般都是使用数据集部件TTable TQuery或TStoredProc与磁盘上的数据库进行连接 用TDataSource部件连接数据控制部件和数据集部件 当然用户也可以自定义数据集部件 用于数据库应用当中 TTable TQuery 和TStoredProc部件中都包含一个不可见的TField类型的对象Fields Fields是一个串列表 它对应于数据库表或一个查询结果的列或字段 Fields对象是伴随着TTable TQuery 和TStoredproc部件的活动状态动态地建立的 当数据库表被关闭时 Fields 对象也随之消失 它在程序设计和程序运行过程中都是不可见的

当然也可以利用Fields Editor建立永久性的Fields对象供Delphi应用程序使用 我们将在后面的内容中详细阐述

TTable部件

利用TTable部件程序设计人员甚至可以不需要编写任何程序便可对数据库进行访问 在一个应用程序窗体中放置一个TTable部件的过程如下

在部件选择板上选择Data Access页

单击Table图标

在窗体内单击鼠标 获得一个TTable部件

为TTable部件设置有关的属性

DatabaseName属性指定要访问的数据库所在的路径名 路径名可以用别名来表示

TableName属性指定要访问数据库中具体的数据库表

Active属性设置为True时 表示打开要访问的数据库表 设置为False时 暂时不打开要访问的数据库表

缺省情况下 TTtable部件中包含了要访问的数据库表中所有的字段和记录 用鼠标双击TTable图标时 会出现一个字段编辑器(Fields Editor) 使用Fields Editor可以对TTable部件中包含的数据库表中的字段的显示格式等属性进行编辑 具体可以控制

● 建立一个永久性的字段列表 包括字段的顺序 字段的类型等 即使磁盘上实际的数据库表的表结构发生了改变 我们建立的这个永久性的字段列表也不会发生改变

● 为每个字段指定一个便于阅读和使用的名字

● 指定字段显示的顺序

● 为每个字段指定一个用于显示的字符串

● 为字段增加合法性检验

● 为了显示的需要还可以建立新的字段(如可计算的字段)具体的使用方法见后面的内容

TQuery部件

TQuery部件是我们使用SQL语言开发数据库应用程序的有力工具 因为使用SQL语言 我们可以非常方便灵活地对一个或多个数据库表中的记录进行访问 所以利用TQuery我们可以查询本地的数据库如Pà?aradox和dBASE数据库系统中的数据 我们还可以使用TQuery部件对一个远地的数据库SQL服务器进行访问 建立Client/Server模式的应用程序

在一个应用程序窗体中放置一个TQuery部件的过程如下

在部件选择板上选择Data Access页

单击Query图标

在窗体内单击鼠标 获得一个TQuery部件

为TQuery部件设置有关的属性

DatabaseName属性指定将要访问的数据库的路径名

SQL属性指定对数据库表进行访问SQL语句 它可以是一条查询语句也可以是一条修改语句或插入语句等 在对象浏览器上 单击SQL属性时 会打开一个字符串编辑器供程序设计者输入SQL语句

在这里要注意在TQuery部件中 不是用TableName 属性来指定要访问的数据库中的数据库表 而是在SQL属性中 通过SQL语句来指定将要访问的数据库表

TDataSouece部件

TDataSource部件是连接数据集部件TTable TQuery TStoredProc 和数据控制部件TDBGrid TDBEdit等的桥梁 TTable TQuery TStoredProc部件通过BDE可以实现与磁盘上的数据库连接即访问 但它们本身不能显示数据库中的数据信息 而数据控制部件如TDBGrid TDBEdit等能够提供可视化的界面 显示数据库中的数据信息 但它们不具备访问磁盘数据库的能力 正是TDataSource将这两者有机地结合起来 使得用户才能交互地对数据库中的数据信息进行查询 修改 插入 删除等 *** 作

在应用程序窗体中放置TDataSource部件的过程如下

在部件选择板上选择Data Access页

单击DataSource图标

在窗体内单击鼠标 获得一个TDataSource部件

为TDataSource部件设置有关的属性

Dataset属性指定一个数据集部件 可以是TTable TQuery或TStoredProc部件的名字

返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

Visual C++音频/视频技术开发与实战

Oracle索引技术

ORACLE G数据库开发优化指南

Java程序性能优化 让你的Java程序更快 更稳定

C嵌入式编程设计模式

Android游戏开发实践指南

lishixinzhi/Article/program/Delphi/201311/25181

为了便于开发数据库应用程序,在Delphi集成开发环境中,提供了大量的数据库工具软件用于帮助应用程序开发人员设计、编程、测试和发行数据库应用程序。所有这些工具构成了Delphi数据库应用程序开发环境。其各个工具软件及其相互间的关系。

整个Delphi数据库应用程序开发环境由数据库引擎(BDE)、数据库引擎管理程序(BDE Ad—ministrator)、数据库桌面(DataBase Desktop)、SQL浏览器(SQL Explorere)、SQL驱动程序(SQL Links)和ODBC驱动程序等组成。

数据库引擎是Delphi数据库开发环境的核心,它由两种类型的动态链接库组成:一种用于提供核心服务,另一种用于连接本地或网络数据库。所有这些文件被安装在 *** 作系统的System和用户所指定驱动器\Programe Files\Common Files\Borland\Bde\目录下。数据库引擎的主要 功能是将数据库应用程序和物理的数据库分隔开来,在数据库引擎中通过数据库别名(Database Aliases)来标识本地或远程的数据库,数据库应用程序仅需要此数据库别名就可以透明地对数据库进行访问。

数据库引擎管理程序(B DE Administrator)主要用于对本地的Paradox、dBASE数据表和远程的SQL数据库进行创建表、创建索引、查询、存取和我等 *** 作。

通过SQL浏览器可以对本地或远程的数据库进行各种SQL查询 *** 作。

SQL驱动程序(SQL Links)是Inprise公司在Delphi客户/服务器版本中提供的远程数据库的访问驱动程序,ODBC是微软公司在Windows 95/98或NT *** 作系统提供数据库访问驱动程序。

一 建立临时表 数据输入是开发数据库程序的必然环节 在Client/Server结构中 客户端可能要输入一批数据后 再向服务器的后台数据库提交 这就需要在本地(客户端)建立临时数据表来存储用户输入的数据 待提交后 清除本地表数据 这种方法的好处是 提高输入效率 减小网络负担

由于用户一次输入的数据量一般情况下较小(不会超过几百条记录) 所以临时表可以建立在内存中 这样处理速度较快 方法 使用查询控件(TQuery)第 步 在窗体上放上查询控件(TQuery) 设置好所连接的数据表 第 步 使 TQuery CachedUpdates=True;TQuery RequestLive=True;第 步 在原有的SQL语句后加入一条Where子语句 要求加入这条Where子语句后SQL查询结果为空 例如 SELECT Biolife ″Species No″ Category Common_Name Biolife ″Species Name″ Biolife ″Length (cm)″ Length_In Notes Graphic FROM ″biolife db″ Biolifewhere Biolife Category=′A′ and Biolife Category=′B′这样临时表就建立完成了

方法 使用代码创建临时表代码如下 function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet;var TempTable:TClientDataSet;begin TempTable:=nil; Result:=nil; if AFieldDefs<>nil then begin try TempTable:=TClientDataSet Create(Application); TempTable FieldDefs Assign(AFieldDefs); TempTable CreateDataSet; Result:=(TempTable as TDataSet); Except if TempTable<>nil then TempTable Free;

Result:=nil; raise;  end;end; end;

在程序中按如下方法使用 procedure TForm Button Click(Sender: TObject);var ADataSet:TDataSet;begin ADataSet:=TDataSet Create(Self); with ADataSet FieldDefs do begin Add(′Name′ ftString False); Add(′Value′ ftInteger False); end;

with DataSource do begin DataSet:=CreateTableInMemory(ADataSet FieldDefs); DataSet Open; end;

ADataSet Free;end;

临时表创建完成

方法 使用简单 但由于利用查询控件 清空数据时需要查询服务器后台数据库 所以速度稍慢 而且不适用于临时表中各个字段由数个数据表的字段拼凑而成的情况 方法 适用范围广 速度快 但需要编写代码 (代码中TFieldDefs的使用方法十分简单 见Delphi的联机帮助)

二 配置数据引擎(BDE SQL Link)有关数据库程序分发时 需要携带数据引擎(BDE SQL Link) 并且在客户端安装完程序后还需要配置数据引擎 如用户名(username) 密码(Password)等等 如果手工配置的话 工作量比较大(根据客户机数量而定) 而InstallShield For Delphi又好像没有这方面的选项 其实InstallShield For Delphi可以做到 在生成安装程序的目录里有一个* iwz的文本文件 只要在[IDAPI Alias]片段中手工加入即可 例如 [IDAPI Alias] usesname=SYSDBA password=masterkey 安装程序后数据引擎自动配置完毕

三 在InterBase数据库中使用函数 程序员可能在用InterBase作为后台数据库时 会为其提供的函数过少而感到不方便(只有四个) 无法方便地编写出复杂的存储过程 InterBase本身无法编写函数 但它可以使用外部函数(调用DLL中的函数) 下例中说明如何在InterBase 中声明SUBSTR函数 DECLARE EXTERNAL FUNCTION SUBSTR CSTRING( ) SMALLINT SMALLINT RETURNS CSTRING( ) ENTRY_POINT ″IB_UDF_substr″ MODULE_NAME ″ib_udf″

其中 MODULE_NAME为DLL的名称 ENTRY_POINT为函数名 声明后便可以使用 例如 select SUBSTR(country) from country

lishixinzhi/Article/program/Delphi/201311/8520

你最好使用数据库感知控件,DBEDIT等等,如果你使用普通控件,要多写一些代码,看样子你对数据库 *** 作不太熟悉,应该多读一些基础的书。

1你如果用数据库感知控件,保存的时候用post直接提交。如果用普通控件,你需要把edittext值赋给字段再post提交

2DM做公用数据模块,你需要在调用的子窗里引用就行了,uses DM;

3,关于“怎样做才能把子窗口的数据录到父窗口的DBGrid里?”这个问题,一般这样解决,在子窗体做一个向数据库里录入的功能,保存以后,父窗体重新查询一下。

Sybase和MicroSoft SQL Server数据库

在建立Sybase或MicroSorft SQL Server的SQL Link时除了需要下列文件外 应用程序还需要Sybase数据库管理系统的客户端的连接产品与网络协议接口

表 建立Sybase数据库的SQL Link所需的文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━

文件名  描 述

───────────────────────────

SQLD_SS DLL  BDE SQL Link for Sybase的驱动程序

SQLD_SS HLP  联机帮助文件

SQL_SS CNF  Sybase驱动程序的BDE配置文件

W DBLIB DLL  Sybase/MC SQL Server客户端的DLL文件

DBNMP DLL  Sybase/MC SQL Server客户端的DLL文件

SYDC LD  Sybase语言驱动程序

SYDC LD  Sybase语言驱动程序

━━━━━━━━━━━━━━━━━━━━━━━━━━━

Informix数据库

在建立Informix的SQL Link时除了需要下列文件外 应用程序还需要Informix数据库管理系统的客户端的连接产品与网络协议接口

表 建立Informix 数据库的SQL Link所需的文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━

文件名   描 述

───────────────────────────

SQLD_ss DLL  BDE SQL Link for Informix的驱动程序

SQLD_INF HLP  联机帮助文件

SQL_INF CNF  Informix驱动程序的BDE配置文件

LDLLSQLW DLL  Informix客户端的DLL文件

ISAM IEM  Informix错误信息文件

OS IEM  Informix错误信息文件

RDS IEM  Informix错误信息文件

SECURITY IEM  Informix错误信息文件

SQL IEM  Informix错误信息文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━

InterBase 数据库

在建立InterBase的SQL Link时除了需要下列文件外 应用程序还需要InterBase数据库管理系统的客户端的连接产品与网络协议接口

表 建立InterBase数据库的SQL Link所需的文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━

文件名   描 述

───────────────────────────

SQLD_IB DLL  BDE SQL Link for InterBase的驱动程序

SQLD_IB HLP  联机帮助文件

SQL_IB CNF  InterBase驱动程序的BDE配置文件

CONNECT EXE  InterBase连接测试诊断工具

CONNECT HLP  InterBase连接测试诊断工具的帮助文件

GDS DLL  InterBase API DLL

REMOTE DLL  InterBase与网络的接口的DLL文件

INTERBASE MSG  InterBase错误信息文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━

返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

Visual C++音频/视频技术开发与实战

Oracle索引技术

ORACLE G数据库开发优化指南

Java程序性能优化 让你的Java程序更快 更稳定

C嵌入式编程设计模式

Android游戏开发实践指南

lishixinzhi/Article/program/Delphi/201311/25179

Delphi作为一种目前十分流行的数据库开发语言 在数据库开发领域有着十分重要的地位 它不仅提供了可视化的开发环境 使得开发变得相对容易 而且还是一种面向对象的语言 使得程序员能够充分利用面向对象编程的种种优势——如封装 继承等等 从而大大减轻了开发的难度和工作量 下面 我们就谈一谈利用面向对象的特性来开发数据库控件的方法

Delphi本身提供了一些数据库控件 如DBGrid Table等 它们给开发带来了很多方便 下面我们来以一个能够显示数据表中的所有字段的控件为例来说明如何用Delphi来进行控件的编程

首先要为控件选择一个合适的父类 Windows的一个好处就在于它将许多 *** 作标准化了 通过这些标准的 *** 作 使得学习和使用都有章可循 用户就很容 易融会贯通地掌握整个系统 在Delphi中提供了许多控件 这些控件生成的应用程序足以满足Windows编程的要求 而一些新的控件也可以在此基础上 产生 它一方面继承了一部分控件标准的 *** 作 另一方面也在程序中加入一些代码来实现特定的功能 这样用户使用起来不会觉得突兀 也简化了程序的开发 根据 我们的目标可以看出 利用 下拉框 控件作为新控件的父类比较合适 因为它提供了下拉框中的所有标准 *** 作 这就可以大大减少我们的编程量 然后就是为 特定的功能编写代码 我们应该想到 如果一个下拉框能够显示一个数据库中的所有字段 那么它一定有一个属性能够与数据库相连 我们将这个属性定名为 DataSource 并将这一属性添加到控件中 添加的方法是 首先在Private段中加入如下代码

FDataLink:TFieldDataLink; function GetDataSource:TDataSource; Procedure SetDataSource( Value:TDataSource);

其中TfieldDataLink是一个十分重要的类 我们之所以能够很容易地进行数据库控件的开发全是拜它之赐 它有一些十分有用的属性 如 DataSource 利用这个属性 我们就能很容易地指定新控件的DataSource属性

第三步就是为控件的功能编写代码 可以想到 如果我们想要在拉下下拉框时显示数据库中的所有字段 就要在它的DropDown事件中加入代码来将所有 的字段加入到下拉框的下拉区域中 这应该分两步走 第一就是要取得指定数据库的所有字段 第二就是将这些字段以字符串的格式加入到下拉框中(而拉下时显示 所有字段的功能则由下拉框控件自己完成) 在取得数据库的字段时 用到了我们上面提到的TfieldDataLink类 下面的代码就可以获得指定数据库 的字段数目

j:= ; j:=FDataLink DataSource DataSet FieldCount ;//取得数据库中的所有字段的名字 I:= ;

然后再用下面的代码将这些字段的名字加入到下拉框的items属性中 值得注意的是在每次拉下这个下拉框时都要将items属性清空 否则这个下拉框将每次都会因加入重复的内容而变得越来越长 并且一次选择可以选定许多项 使得控件看起来有点怪

items Clear ; //清空items属性

repeat //循环 *** 作将字段加入下拉框中

items Add (FDataLink DataSet Fields[I] FieldName ); //将字段名加入到下拉框中

I:=I+ ;

until I>j- ; //直到所有的字段加入完为止

第四步 就是将以上代码加入到Delphi的控件编辑窗口中去 点击Delphi的 Component/New Component 菜单 系统出现一个对话框 将对话框如图 所示填写

填写完毕点击 OK 按钮 就可以创建一个文件 将上面提供的代码加入到文件的适当位置 就可以完成这个控件的编写 图 是带有这个控件的程序的例子

可以想见 这个控件有着十分广泛的功能 例如 我们能够利用它设置指定字段的值来运行查询 也可以返回数据库中指定字段的数据类型 长度等信息 给我们的编程提供了极大的方便

但是也应该看到 这个控件也有一些缺点 那就是它只能显示字段的名称 一般的数据库中字段的名称都是英文的 这给中文版的应用软件带来不便 下面我们 就用FdataLink的另一个属性来显示中文化的字段 这个属性就是DisplayName 它所指定的是数据库字段的显示名称 而这个名称我们可以在 设计时将其汉化 这样在应用程序中显示出来的就是有意义的中文了

lishixinzhi/Article/program/Delphi/201311/8535

以上就是关于DELPHI基础教程:Delphi开发数据库应用程序概述(一)[2]全部的内容,包括:DELPHI基础教程:Delphi开发数据库应用程序概述(一)[2]、DELPHI基础教程:Delphi开发数据库应用程序概述(一)[4]、DELPHI数据库应用程序的开发环境介绍等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9350229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存