delphi三层架构

原创 2007年10月10日 10:53:00

三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。

这样做的好处是层次分明,维护好做,系统资源也好分布式处理。

数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层

业务逻辑的话要分析清楚,就是中间层

界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有效性分析最好放在界面层,以充分利用客户端的性能。不然的话业务逻辑层的负担太大也会形成瓶劲。

数据库的建立不说了。

三层体系的建立

一 数据库层的建立

      使用sqlserver或orale建立数据库。

二 中间层的建立

      一般将中间层分为二个部分,数据部分和逻辑部分。

     数据部分就是使用原始的查询,一个ado连接,多个成对出现的adq和dsp。ado连接最后选使用文件连接,以便以后可以在客户端自由决定连接哪个数据库而不需要改程序。

逻辑部分跟客户端一样,使用DCom来连接到数据部分,然后使用cds连接到DCOM并指明数据提供器dsp.然后再增加相应的函数来处理数据。事务一般取自动维护的,这样函数开始事务自动开始,我们只需要维护事务回滚setAbout,和事务完成setcomplete.在中间层服务器中不要添加需要人主动干预的动作,比如对话框之类。因为中间层服务器和数据库一样是长时间不间断运行的,也没有谁会呆在中间层服务器前专门处理这些问题。

例:delphi7 sqlserver2000,win32环境

在delphi中建立一个多层项,选Translation Data Moudle

取个名testTran,线程模式Threadling Model选Aparment,等会再改它。

事务模式Translation model取 需要一个事务requires a Translation

点OK就建立了一个中间层。

然后得改一改线程模式由tmApartment改成tmNeutral.(在initialization的 TComponentFactory.Create里改参数。)

再就可以添加数据控件进行处理了。

附:线程模式 1.Single:单线程,只有一个Rmd线程,所有客户端只能顺序地得到服务。
2.Apartment:服务程序可以同时有多个Rmd线程,但每个Rmd线程只能服务以单线程模式运行。
3.Free:没有线程限制的模式,没见用过。
4.Both:介于Apartment和Free之间的一种线程模式,没见用过。
5.Neutral:仅对Com+有效,可以使多个客户端同时以多线程模式应用服务器,建议使用,但注意全局变量的保护问题。

三 客户端的建立

     客户端的建立,取数据直接用DCOM连接,cds取。如果是逻辑业务的话就用 DCOM.appserver.函数来处理。

     主从结构在这里有一个小技巧。如果将主从结构放在中间层的话,主表第一次取数据时会遍历主表,从表也会跟着查一次,如果主表条数很多,会造成用时很长。如查将主从结构放在客户端的话,主表第一次取数从表不会跟着走一次,哪样速度就快很多。但是如果主表条目数很少,而且在取得数据后经常变动的话,还是将主从结构放在中间层较好,这样查询到的数据是暂存起来的,这样得到数据就会很快。

 

Delphi 三层框架开发 服务端开发

采用Delphi7+SQL2008 首先创建数据库和表
  • gykthh
  • gykthh
  • 2014年10月24日 14:40
  • 13434

delphi三层架构

我们的delphi程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库。现在需要改成在外网可以直接操作软件。 先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容...
  • pcwe2002
  • pcwe2002
  • 2016年09月13日 17:21
  • 3205

Delphi三层网络架构代码实现

Delphi三层网络架构代码实现 1 .三层网络的概念 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为: 表现层(UI)、业务逻辑层(BLL...
  • singular2611
  • singular2611
  • 2015年03月26日 22:58
  • 1094

delphi三层结构常出现的问题和解决方案

以下问题出现原因有可能多个,暂时将我遇见的记录下来,以后有新的在陆续更新上去,有网友愿意的话也可以共同测试一下。 一,无法更新定位行。一些值可能已在最后一次读取已更改。 错误出现前提: ...
  • chinajobs
  • chinajobs
  • 2016年03月24日 19:29
  • 506

delphi三层架构

这是我多年前在深圳工作时写的,现在都迁移来CSDN上,免的丢失了。       三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。       这样做的好处是层...
  • kangshijiu1
  • kangshijiu1
  • 2014年03月11日 00:11
  • 1494

Delphi数据库的三层架构的问题和解决方法

//----------------Delphi数据库的三层架构几个问题的说明----------------. 第一、1,在写服务器端时,delphi7环境下,运行程序会自动注册服务(有人说Del...
  • lenovo455
  • lenovo455
  • 2014年03月26日 16:26
  • 872

Delphi的三层开发初学经验

在数据库开发方面Delphi相对于其他众多开发工具其优势在于灵活快速,且十分稳定。本实例使用Remote DataModule(远程数据模块)创建。 服务端:   首先让我们来编译服务器端,打开D...
  • u014802181
  • u014802181
  • 2015年11月12日 10:31
  • 860

delphi 三层架构简单例子(经测试成功)

所谓三层: (1) 客户端 (2) 服务器端 (3) 数据库     在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。     在Delphi中可...
  • xiexuan2007
  • xiexuan2007
  • 2013年12月19日 09:48
  • 1355

Delphi XE之路(13)开发数据库三层应用的DataSnap

我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完成服务器的设计: (1)利用向导完成DataSnap服务器的框架,如下图: ...
  • 5201314
  • 5201314
  • 2014年12月22日 16:22
  • 2283

Delphi三层实例

所谓三层:(1)客户端(2)服务器端(3)数据库   在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。 在Delphi中可以使用Socket或者Dcom来连接他们相互间的...
  • chinajobs
  • chinajobs
  • 2015年04月10日 14:15
  • 1523
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi三层架构
举报原因:
原因补充:

(最多只允许输入30个字)