社区
数据库及相关技术
帖子详情
多数据库操作
olivertree
2002-12-21 08:00:04
一般是怎么操作最好呢?使用ADO的话?
...全文
54
11
打赏
收藏
多数据库操作
一般是怎么操作最好呢?使用ADO的话?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
olivertree
2002-12-26
打赏
举报
回复
等的太久每人理我,所以至今才到,可惜已人去楼空,对不住大家啊:''(
yuyulily
2002-12-24
打赏
举报
回复
楼主你是要问多层还是多个数据库啊?
xpyilin
2002-12-22
打赏
举报
回复
楼上的,论文是楼主自己帖的啊,嘻嘻~~~~~你自己没有看清楚啊。。。
gdyt007
2002-12-22
打赏
举报
回复
论文都出来了!搂主该感动好几天了·!呵呵
lxinjun
2002-12-22
打赏
举报
回复
收藏
lxinjun
2002-12-22
打赏
举报
回复
你对ado有多少了解??
warton
2002-12-22
打赏
举报
回复
看看李维的书吧!!
问题太多,不易说清
xpyilin
2002-12-21
打赏
举报
回复
问题是看你想怎么样操作呢。。。
olivertree
2002-12-21
打赏
举报
回复
浅析多层结构及其在Delphi中的实现
张玉珍 黄东
(东南大学自控系)
摘要:本文讨论了分布式多层应用体系的结构、特点及实现技术。分析了用Delphi实现基于MIDAS技术的多层结构,并举例说明实现多层结构的步骤。
关键词:多层结构,客户端,应用程序服务器,远程数据库服务器
1 多层结构应用体系
1.1 二层结构的退出
在传统的二层C/S结构数据库应用中,客户端的机器执行应用程序,连接到后端的数据库服务器中存取应用系统所需资料,因为应用系统的企业逻辑都编写在客户端的应用程序中,造成客户端非常臃肿,且当应用系统需求改变时,所有在客户端的应用程序都必须改变,使维护成本太高。
Oracle
MSQL
客户端1 数据库服务器 Sybase等
图一2层C/S结构
1.2 多层结构的概念和特点
为了解决这些问题,多层结构应用体系应运而生,即在传统的二层C/S模型中放入应用程序服务器。应用程序服务器简单地说就是一个包含企业逻辑的应用程序,开发人员以一种特定的组件形态,如Microsoft COM/DCOM,CORBA对象,或Enterprise JAVA Bean等,封装企业逻辑的程序代码,这种经过封装,能够执行特定企业功能的对象被称为“企业对象”,把这些企业对象分发到应用程序服务器中,开发人员在开发应用程序时就可以使用这些企业对象提供的服务。
多层结构的典型是三层结构,其基本思想是把用户界面与企业逻辑分离。整体结构如图二所示。
客户端 应用程序服务器 远程数据库服务器
(提供用户界面) (包含企业逻辑) (Oracle,MSQL,Sybase等DBMS)
图二 三层结构模型
(1) 客户端应用程序。提供用户接口,主要功能是指导操作人员使用界面,输入数据,输出结果,并不具有企业逻辑,或只拥有部分不涉及企业核心的、机密的应用逻辑。这样客户端就显的很廋,称为“廋”客户。
(2) 应用程序服务器。它是应用的主体,包含了企业中核心的及易变的企业逻辑(规划,运作方法,管理模型等),其功能即接受输入,处理后返回结果。
(3) 远程数据库服务器。即数据库管理系统(DBMS),负责管理对数据的读写和维护。
在更复杂的多层体系结构中,“廋”客户与远程数据库服务器之间可以加入更多的中间服务器,如加入一个中间安全服务器或中间转换服务器,用于对不同平台数据进行处理。
分布式多层结构把整个应用系统的执行分成数个不同部分并且执行在不同的机器中。其中应用程序服务器作为中间层集中实现企业逻辑,协调多层之间的请求,并掌握数据集定义的全部细节和远程数据库服务器进行通信,这样客户端应用程序就重点放在显示数据和与用户交互上,客户端应用程序甚至都不需要知道数据在那儿。
具体来说,多层结构具有如下优点:
(1) 在一个共享的中间层封装了企业逻辑,不同客户端应用程序可以共享同一个中层层,而不必由每个客户端应用程序单独实现企业逻辑。
(2)客户端应用程序可以做的很廋。因为很多复杂的工作由应用程序服务器代劳,客户端应用程序只需关注用户界面本身。“廋”客户端应用程序更易发布、安装、配置和维护。
(3)实现分布式数据处理。把一个应用程序分布在几个机器上运行,可以提供应用程序的性能,通过冗余配置还可以保证不会因为局部故障导致整个应用程序崩溃。
(4)有利于安全。将一些敏感数据功能部分封装在中间层,并授予不同访问权限,可以保证对数据的访问限制。
1.3 多层结构使用的技术。
目前分布式多层结构使用的核心大致可以分为两种不同的工业标准,即Microsoft制定的COM/DCOM/COM+和由700多家厂商共同提倡的CORBA。因分布式结构的广泛流行,现也有愈来愈多的根据这两种分布式核心技术加以演进而产生的分布式技术,如EJB(Enterprise Java Bean)等。
Microsoft的COM/DCOM/COM+是以Windows为中心的开发环境,CORBA是平台中立的分布式技术,CORBA能够执行于Windows,UNIX以及Linux等操作系统中。这些技术都能使开发人员在应用程序中轻易地使用企业对象所提供的服务。这两种分布式技术都在客户端机器中以一个特别的对象来仿真真正的远程应用程序服务器上的企业对象,这样客户端应用程序就可以调用在客户端机器中的仿真对象,该对象再使用特定的通讯协议来真正调用远程应用服务器上的企业对象,从而调用远程企业对象的服务,以满足客户端的要求。
2 在Delphi中实现基于MIDAS的多层结构
2.1 在Delphi中多层结构的实现
在Delphi中多层结构的基础是MIDAS(Multi-tier Distributed Application Service Suite,多层分布式应用服务器组)技术。MIDAS是一些不同技术的集合,无论是应用程序服务器还是客户端,MIDAS技术需要DBClient.dll和MIDAS.dll的支持,这两个动态链接库用于管理数据包,发布MIDAS应用程序时需要发布这个文件。
基于MIDAS的多层结构依然分为客户端应用程序,应用程序服务器和远程数据库服务器,如图三所示。
从图三可见,MIDAS的数据库应用程序需要一些特殊组件,这些组件共分为4类:
(1)远程数据模块。位于服务器端,作为COM服务器或CORBA服务器让客户端应用程序访问它的接口。
数据模块 IAppServer接口 远程数据模块
客户端应用程序 应用程序服务器 远程数据库服务器
图三 MIDAS 结构
(2)DataSetProvider组件。位于服务器端,提供IAppServer接口,客户端应用程序通过
IAppServe接口获得数据。
(3)连接组件。位于客户端,包括DCOMConnection,SocketConnection,CORBAConnection,
OLEnterpriseConnection,MIDASConnection 和RemoteServer 等连接组件,为客户端应用程序定位应用程序服务器和IAppServe接口。
(4)ClientDataSet组件。位于客户端,访问服务器端的IAppServe接口,它是从TdataSet继承下来的组件。
客户端应用程序通过IAppServe接口与应用程序服务器通讯,通讯协议为DCOM,TCP/IP,HTTP,OLEnterprise 和CORBA。通讯协议因客户端的MIDAS连接组件及应用程序服务器上的远程模块不同而不同。
2.1.1 客户端应用程序结构
在结构上,客户端应用程序通过标准数据控制组件与用户交互,但是它是通过应用程序服务器提供的IAppServe接口获得数据,也是通过IAppServe接口更新数据。所谓“廋”客户即指不依赖BDE的数据集(TClientDataSet 组件)构成的客户端应用程序。TClientDataSet 组件是从TDataSet派生出来的客户端数据集组件,它扮演了与TTable或TQuery同样的角色,但它不需要BDE,它把通过IAppServe接口获得的数据在客户端内存中建立副本,对数据进行操作。直接访问远程数据库服务器的是应用程序服务器。
远程数据模块 说明
RemoteDataModule 支持双重接口的自动化服务器,支持DCOM,TCP/IP或OLEnterprise协议。
MTSDataMoudle 支持双重接口的自动化服务器,创建的应用程序服务器是动态链接库,支持DCOM,TCP/IP或OLEnterpris协议。
CORBADataMoudule CORBA服务器,支持CORBA协议
在客户端,MIDAS连接组件非常重要,不同连接组件使用不同的通讯协议,如表一所示。
连接组件 通讯协议
DCOMConnection DCOM
SocketConnection TCP/IP
WebConnection HTTP
OLEnterprise OLEnterprise
CORBAConnection CORBA
表一 MIDAS连接方式 表二 支持MIDAS的数据模块
2.1.2 应用程序服务器
应用程序服务器的关键部件是远程数据模块,在远程数据模块上,TTable,TQuery等BDE数据集组件通过BDE与远程数据库服务器连接访问数据库,DataSetProvider组件输出IAppServer接口,DataSetProvider组件通过DataSet属性与数据集组件相连,这样客户端通过IAppServer接口就可以访问数据。
Delphi支持三种类型的远程数据模块,如表二示。
2.2 用MIDAS创建多层结构数据库应用程序实例
建立多层结构应用系统,必须先建立应用程序服务器,并运行注册之,再建立客户端。下面就以笔者创建的一个三层结构为例来介绍用D elphi实现三层结构的步骤。(假设在应用程序服务器上已设好BDE连接,连到远程数据库服务器。)
2.2.1 建立应用程序服务器。(在应用程序服务器上建立)
(1)使用File菜单下的New Application建立一个新应用程序。
(2)创建远程模块。使用File菜单下的New打开New Items对话框,在Multitier选项下,双击Remote Data Module,设置Classname 为rdm,Instancing及Threading Module属性取默认值。
(3)在该远程模块上放一个Query1(Tqueyr组件),DatabaseName属性中指定为要访问的数据库,如“出版社”。在该远程模块上再增加一个DataSetProvider1(TDataSetProvider组件),DataSet 属性设为Query1,Options属性中令poAlloCommandtext为true。(设为true,则客户端应用程序中TClientDataSet的属性commandtext中的SQL语句就可以通过IAppServer接口传递。)
至此,应用程序服务器已创建完毕,运行该应用程序服务器在系统中注册它,在应用程序服务器上运行ScktSrvr.exe文件,这样今后客户端程序就可以调用该应用程序服务器。
2.2.2 创建客户端应用程序。(在客户端机器上创建)
(1)建立数据模块。使用File菜单下的New Application建立一个新应用程序。在New Item中双击Data Module建立一个数据模块(命名为dm),在该模块上放一个连接组件SocketConnection1 (TsocketConnection组件),其IP属性中指定应用程序服务器的IP地址,在Port属
olivertree
2002-12-21
打赏
举报
回复
我在线等待呢..........
olivertree
2002-12-21
打赏
举报
回复
帮帮忙阿?
软件工程经典教程之[5]关系
数据库
基础高清完整PPT
数据库
系统(DataBase System,简称为DBS)是指计算机系统中引入
数据库
后的系统,由
数据库
、软件(
操作
系统、
数据库
管理系统、开发工具、编译系统和应用系统等)、用户、硬件构成。
QT SQLite 多
数据库
操作
大全
QT SQLite 多
数据库
操作
大全一.单
数据库
模型一般QT都是把打开一个缺省
数据库
连接,
操作
一个
数据库
连接,但是对Sqlite中频率修改容易加锁,因此有一种设计模式是把频率修改的表放在不同的
数据库
文件中,但这样要修改代码
操作
数据库
部分 通常打开代码 http://developer.nokia.com/community/wiki/Creating_an_SQLite_database
Python
操作
mysql
数据库
入口基础和实战案例
数据库
(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。... 学完该课程,可独立使用python
操作
数据库
,包括:创建
数据库
、创建数据表、使用python编程
操作
数据库
增删改查。
fastadmin开发之多
数据库
操作
用fastadmin做后台,需要调用B机器上的
数据库
控制台: $total = Db::connect('db_b') ->name('user') ->where($where) ->order($sort, $order) ...
一文详解python中的
数据库
操作
python中的
数据库
操作
一、
数据库
编程接口1. 连接对象二、使用内置的SQLite1.创建
数据库
文件2.
操作
SQLite三、MySql
数据库
的使用3.1 安装MySql3.2 设置环境变量3.3 启动MySql3.4 使用navicat for mysql 管理软件3.5 安装PyMysql模块3.6 连接
数据库
四、创建数据表4.1 创建books 图书表4.2
操作
MySql数据表 最近做毕设,需要添加个
数据库
,记录一下。 一、
数据库
编程接口 重点介绍
数据库
API接口中的连接对象和游标对象 1. 连接对
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章