热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BDE(一款数据库引擎,通过它可以连接不同数据库)

BDE(BorlandDatabaseEngine)是Inprise公司的数据库引擎,它结合了SQLLinks允许程序员通过它能够连接到各种不同的数据库。BDE是BORLAND数据库引擎的缩写

BDE(Borland Database Engine)是Inprise公司的数据库引擎,
它结合了SQL Links允许程序员通过它能够连接到各种不同的数据库。
BDE是BORLAND 数据库引擎的缩写,它是用来驱动数据库的,就像ODBC一样。
同样的DBASE表可以用BDE驱动,也可以用ODBC驱动。

简介

要开发数据库应用程序首先要解决数据源的问题,那么什么是数据源呢?
简单来讲数据源就是实实在在的数据,通常是各种数据表。
有了数据源我们就有了开发程序的依据,然而一般情况下应用程序并不能直接和数据源打交道,
必须通过某些中介,这些中介被称为数据库驱动器,通常每一种数据库都有至少一种数据库驱动器,
如:Access,Foxpro,dBase等数据库都有自己的数据库驱动器,有了这些数据库驱动器,为了编程的方便起见,接着就产生了管理这些数据库驱动器的引擎,
有了数据库引擎,程序员在编程时就不要为访问不同的数据库驱动来费脑筋了,
只要按照统一的方法访问数据库引擎,而让数据库引擎去完成不同数据库驱动器的转换,
数据库引擎就像一个公共接口,为访问数据库提供了统一的方法。
BDE是(Borland Database Engine)宝兰数据引擎的缩写,它不仅能访问本地的不同数据库,
还可以将应用从本地上传到客户机-服务器系统,而且有很高的效率。

能访问的数据分类:
一,本地数据。
二,客户机-服务器体系的异地数据。


工作原理

BDE 是Delphi数据库功能的枢纽部分,所有数据库存取使用的例程,均需要通过BDE 来处理,因此BDE是连接应用程序和数据库的桥梁。它是由几个DLL 模块组成的,各模块分别负责处理一些数据库的相关工作。
如果机器上装有其它版本或重复的BDE ,那么BDE是按照下列的搜索顺序来载入BDE 的DLL 文件( Idapi32. dll) 并将BDE 初始化的:
1) 搜索当前目录(当前目录与应用程序的启动目录不一定不同);如果没有找到该文件,将继续;
2) 搜索注册表HKEY-LOCAL - MACHINE \ SOFTWARE\ Borland \ Database Engine \ DLLPATH \ xxxxx中所对应的项目;如果没有找到该文件,将继续;
3) 按照装载库文件的先后顺序来进行搜索:即应用程序的当前启动目录→System目录→Windows 目录→PATH 环境参数中所设置的路径。
装载驱动程序DLL 文件的先后顺序,除了第一步的搜索路径要换为Idapi32.dll 这个文件被载入的目录之外,其它基本跟上面一样。而且BDE为一些DLL 文件预留了某些首选内存地址,
如果相应的BDEDLL 文件不能被载入那些特定的首选内存地址时,系统将出错误信息并使初始化失败。
BDE是一个过程化的数据库访问接口,通过它可以建立数据库别名(DataBasealias)。
使Delphi访问数据库别名中的各种数据表。
BDE在Delphi中扮演着重要角色。
如果Delphi应用程序提出一个对数据库的请求,这个请求一定要通过BDE提交给数据库管理系统,
数据库管理系统响应应用程序的请求,把查询结果通过BDE传送到Delphi应用程序。
对于只在单机上使用的本地数据库而言,Delphi通过BDE来控制数据库中数据的读写。
对于后台远端的数据库系统而言。
BDE尚需通过SQLLINKS或ODBC(Open DataBase ConnectivityDrivers)才能读取数据库的内容。



区别

与ADO区别
ADO简介
与BDE不同ADO是Microsoft推出的新一代数据访问规范,在Delphi6中它的地位等同于一个和BDE并列的数据引擎。
ADO实际上和ActiveX技术联系紧密,而ActiveX又和OLE,COM等技术有很密切的关系。
虽然ADO的功能比BDE比起来弱一些,但和BDE相比ADO有一些重要的优势,
比如:
ADO将会内制在从Windows2000开始Microsoft新出的所有操作系统中,
单就这一点就足以给其他的数据访问方式画上问号.
在Delphi7中提供了对ADO的全力支持,提供了很多ADO组件,
还增加了一些新的字段类型如:WideString,GUID,Variant,interface,IDispatch等.
ADO是面向各种数据的层次很高的接口,它提供了强大的数据访问功能,可以访问的数据对象有:
1>关系数据库中的各种数据;
2>非关系型数据库,如层次型数据库,网状数据库等;
3>电子邮件与文件系统;
4>文本与图象,声音;
5>客户事务对象.

区别
一、利用BDE数据引擎实现数据库连接
BDE 连接数据库有如下几步:
1) 给数据库建立别名。BDE使用的核心是BDE别名的使用。
别名相当于数据库的逻辑名称, 隐含了数据库存储物理地址和网络数据库的连接。
要想让应用程序通过别名和数据库建立连接, 首先要在BDEAdministrator 中给数据库建立别名。
2) 配置相关的参数。
说明: Host Name 是你自己的主机的名字, 我这里是lisan, Server Name 是SQL 服务器的名字, 我这里是Lisan\lisan, DataBaseName 是你在SQL 服务器下建立的数据库的名字, UserName 的名字是Sa, 相应会出现对话框输入密码。这是你以后连接数据库时用的用户名和密码。连接好数据库之后,那些属性的字体自动变成黑体了。数据库连接好之后, 以后的操作就不再连接,只需要输入正确用户名和密码即可成功的连接上。之后只需要对个别的情况与个别的表进行连接。
3) 选择数据访问组件。
数据库组件主要有数据访问组件和数据控制组件。在数据模块窗体上添加数据访问组件TTable、TQuery、TDataSource 来实现访问数据库的功能,还要对各组件的属性进行设置。
4) 选择数据控制组件。在窗体上添加数据控制组件DBGrid、TDBEdit 等组件, 也要对属性进行设置。设置组件DBGrid、TDBEdit。该组件一般只需设置为DataSource 属性, 用于和组件DataSource 建立联系,从而设为 Data- Source1。很显然, 组件DataSource 是用于组件Table1 和DBGrid 之间建立联系, 即建立一个数据通道为了简化编程。通过上面的四步,就可以完成了数据库的连接。

二、运用ADO技术实现数据库的连接
Delphi 应用程序中可以使用原生ADO 对象和ADO Express 组件实现与SQL Server 2000 数据库的连接。
在此以我的毕业课题“小型服装公司销售管理信息系统的设计与实现”为实例来介绍ADO Express 组件实现与SQL Server 2000 数据库的连接。Delphi中除连接类型外其他的ADO组件都有一个ConnectionString 属性。
首先必须配置该属性才能连接到SQL Server 2000 服务器。
连接到销售管理系统数据库的多个ADO 组件的ConnectionString 属性相同, 因此可以只配置一个ConnectionString 属性, 而通过配置其他ADO 组件的ConnectionString 属性来共享同一连接, 从而提高对SQL Server 2000 的访问效率。销售管理系统数据库存放于名为lisan\lian 的服务器上, 他的数据库名称为lv,登录用户为lisan, 登录密码为lisan。具体操作如下:
ADOConnection1.Connection
String:=’Provider=SQLOLEDB.1;
Password=lisan;
Persist SecurityInfo=True;
User ID=lisan;
Initial Catalog=lv;
Data Source=lisan\lian’
ADOConnection1 为ADO Connection 类(组件)的一个对象。其中Provider= SQLOLE DB.1 指明OLEDB 提供者, User ID=lisan 和Password=lisan指明登录SQLServer 的用户帐号和口令, PersistSecurity Info =True使该连接组件自动存储用户登录口令, Initial Catalog=lv 指明了销售管理系统数据库的名称(别名),DataSource=lisan\lian 指明了数据库所在服务器名称。
另外也可以通过连接向导来实现连接, 双击ADOConnection1 对象即见所示的连接向导。此连接向导可以通过两种方法来连接:
1) 选择UseData Link File, 通过Browse 按钮可
连接一个外部后缀为udl 的文件( 此文件可通过新建空文本文件而后更改后缀来实现,然后可以打开此文件来设置外部的连接属性) , 这样ADOConnection1.Connection String 的信息将保存于外部。这一种连接的缺点是udl 文件没有被加密, 如果采用保存密码的方式, 通过写字板即可看到里面的密码。
2) 选择UseConnection String, 单击Build 按钮弹出对话框。
在此输入ADOConnection1.Connection String 的信息就可对数据库连接。这时可以通过TADOQuery组件访问销售管理系统数据表, 设置TADOQuery 类对象ADOQuery1 的Connection 属性为ADOConnection1,然后通过设置其SQL 属性来指定操作, 例如要从数据库返回服装基本信息:
ADOQuery1.SQL:=‘SELECT*FROM 服装基本信息表’;
用户还可以为TADOQuery 类的SQL 属性指定其他SQL 描述, 从而实现过滤复杂的数据查询。


组件介绍

简单介绍一下Delphi中常用的数据库组件。
1. 数据访问组件(Data Access Component)
数据访问组件在Delphi组件面板的Data Access组件页上可以找到。这里我们应当注意:Table、Query和Storedproc三个控件,它们称为“数据集组件”,
用于和数据库连接。学习者可以将这些控件视为“虚拟”的数据库,对它们的操作就可以认为是对数据库的操作。 (1)DataSource控件是数据集组件和数据控制组件的连接媒介。数据控制组件是用户操作数据库中数据的界面,
只有通过DataSource控件才能和数据集组件连接,从而对数据进行显示、修改、维护等操作。 (2)Table控件是通过数据库引擎——BDE来存取数据库中的数据的。
通过BDE将用户对数据库的操作(如添加、删除、修改等)传递给数据库。
(3)Query控件是利用SQL(Structured Query Language,结构化查询语言)通过BDE来操作数据库的,
和Table控件完成的功能相似,它只是采用了SQL来实现。 (4)Storedproc控件是通过BDE对服务器数据库进行操作的,常用于客户/服务器(C/S)结构的数据库应用程序。 (5)DataBase控件一般用于建立远程的数据库服务器——客户/服务器结构的数据库应用程序和数据库之间的连接。 (6)Session控件是用于控制数据库应用程序和数据库连接的,主要用于复杂功能的实现,例如:多线程数据库程序设计。
2. 数据控制组件(Data Control Component)
数据控制组件也可以称为数据显示组件或数据浏览组件。它们的主要功能是与数据访问组件相配合,提供给用户一个对数据进行浏览、编辑等操作的界面。数据控制组件在组件板上的DataControl页上。它们主要有:DBGrid控件、DBNavigator控件、DBText控件、DBEdit控件、DBMemo控件、DBImage控件、DBListbox控件、DBComboBox控件、DBCheckBox控件、DBRadioGroup控件、DBLookupListBox控件、DBLookupComboBox控件、DBRichEdit控件、DBCtrlGrid控件、DBChart控件等。 此外,还有一些组件与数据库有关。例如,Decision Cube是一组主要用于数据统计工作的控件,以表格或图形等直观的方式表达统计结果。QReport是用来输出报表的控件,但是,根据经验来看,此控件不太适合中国人报表的习惯。此组件是Borland公司购买而来,性能不是太好,所以使用的不是很多。有一些第三方控件提供的报表控件很好用,也有一些国人自己制作的报表控件,很适合中国人的习惯。 还有一个组件页是ADO(ActiveX Data Objects),主要是使用微软的OLE DB功能对数据库服务器中的数据进行访问和操作。其主要优点是易于使用、高速度、低内存支付和存储空间占用较少。ADO支持用于建立基于客户端/服务器和基于Web的应用程序。ADO同时具有远程数据服务(RDS)功能,通过RDS可以在一次往返过程中实现将数据从服务器移动到客户端应用程序或Web页、在客户端对数据进行处理然后将更新结果返回服务器的操作。ADO逐渐流行起来,ADO本身也很复杂,微软有专门的帮助文件来说明如何使用ADO,学习者有兴趣可以找相关资料进一步学习。

软件优势

Delphi 中两种连接数据库的方法:BDE 数据引擎和ADO 技术。相比而言, BDE 数据引擎有以下四个优势: 1)其应用程序运行效率非常高。
2)目前BDE 是与Delphi 整合得最好的数据库访问引擎,它是通过提供安装相应驱动程序的方式来支持相应数据库访问能力, 因此Delphi数据库应用程序能访问多种类型的数据库, 而不是局限于一种数据库,从而Delphi对分布式数据库应用程序编写有很强的支持能力, 并且对于有些数据库, 只能使用BDE 引擎才能访问。
3)BDE 以提供组件的方式支持数据库编程, 编程非常直观、简单。
4)BDE 对数据库应用程序(特别是在网络环境下) 安装过程中的配置管理非常方便。

虽然BDE 有很多的优势, 但是Borland公司对BDE 已经进入了后期维护的阶段, 停止了对BDE 的更新开发。相反, ADO 就具有了广阔的发展前景, 虽然ADO 的执行效率可能有些不如BDE,但是ADO 不光具有BDE 的后三点优势,它还是通用的数据库访问技术, 并得到了广泛的支持, 使用范围广, 升级和维护比较方便。

备注:随笔中内容来源于网上资料整理,仅供参考。


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
author-avatar
手机用户2502875017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有