其他语言
用于开发数据库应用程序的语言中 还可以使用目前数常见的 面向对象程序设计 (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一 建立临时表 数据输入是开发数据库程序的必然环节 在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):TDataSetvar TempTable:TClientDataSetbegin TempTable:=nilResult:=nilif AFieldDefs<>nil then begin try TempTable:=TClientDataSet Create(Application)TempTable FieldDefs Assign(AFieldDefs)TempTable CreateDataSetResult:=(TempTable as TDataSet)Except if TempTable<>nil then TempTable Free
Result:=nilraise endend end
在程序中按如下方法使用 procedure TForm Button Click(Sender: TObject)var ADataSet:TDataSetbegin 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 Openend
ADataSet Freeend
临时表创建完成
方法 使用州毁简单 但由于利用查询控件 清空数据时需要查询服务器后台数据库 所以速度稍慢 而且不适用于临时表中各个字段由数个数据表的字段拼凑而成的情况 方法 适用范围广 速度快 但需要编写代码 (代码中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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)