![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
三层/多层结构
aroc_lo
这个作者很懒,什么都没留下…
展开
-
使用CleintDataset 蜂巢式主从结构,修改主表KEY字段出现 Cascaded updates not enabled
在provider的option属性中将 opCascadeDeletes 与 opCascadeUpdates 设置为 True 即可。原创 2020-06-04 13:31:53 · 235 阅读 · 0 评论 -
Delphi XE程序设计系列 1-主从架构, 多层到JSON和REST
从桌面开发,主从架构,一直到多层架构,虽然都是广泛被接受的观念和技术,但在信息技术的实作上却从不是开放, 相容的世界。Delphi从桌面开发到主从架构都是使用自己的数据传递格式以及通讯传递架构,到了多层架构虽然使用了Windows平台上的通讯协议,例 如COM/DCOM/COM+,但是在传递的数据格式方面仍然是使用自己的架构,COM/DCOM/COM+也是MS专属的通讯协议,和其它平台上使用的 通讯协议也不一样。当然,不光是Delphi/BCB,大部份的开发工具也是采用类似的方式,那转载 2010-12-13 09:52:00 · 2918 阅读 · 1 评论 -
Delphi XE程序设计系列 2-开发DataSnap/REST服务器
<br /><br /><br /> 在上次的文章中讨论了如何把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSON服务器,在本篇文章中让我们正式讨论如何使用Delphi XE开发DataSnap/REST服务器,由于这其中牵涉到非常多的技术,因此我们将花数篇的篇幅来讨论。现在就让我们从DataSnap/REST服务器开始。<br /><br />开发DataSnap服务器<br /><br /> Delphi XE版的DataSnap允许开发人员同时在DataSnap服务器转载 2010-12-13 10:32:00 · 3584 阅读 · 1 评论 -
Delphi XE程序设计系列 2-开发DataSnap/REST服务器
<br /><br /><br /> 在上次的文章中讨论了如何把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSON服务器,在本篇文章中让我们正式讨论如何使用Delphi XE开发DataSnap/REST服务器,由于这其中牵涉到非常多的技术,因此我们将花数篇的篇幅来讨论。现在就让我们从DataSnap/REST服务器开始。<br /><br />开发DataSnap服务器<br /><br /> Delphi XE版的DataSnap允许开发人员同时在DataSnap服务器转载 2010-12-13 11:22:00 · 2373 阅读 · 2 评论 -
让Delphi的DataSnap发挥最大效率
<br />一个DataSnap的应用程序由两个层组成:DataSnap服务器,它有一个带有一个或者更多DataSetProvider组件的远程数据模块;DataSnap客户端,它带有一个xxxConnection组件和一个或者多个连接到DataSetProviders的ClientDataSets。你可以不使用ClientDataSet而换用XMLBroker组件,后者是专门用在InternetExpress Web服务器应用程序上的。<br /><br />DataSetProvider转载 2011-01-15 09:29:00 · 1162 阅读 · 0 评论 -
SQL,纵向数据变为横向显示。
if object_id(tempdb.dbo.#tb) is not null drop table #tbcreate table #tb([Number] int,[StateCode] varchar(10),[Time] datetime)insert #tbselect 90031,NewCmd,2010-2-3 union allselect转载 2011-06-23 11:13:00 · 1512 阅读 · 0 评论 -
关于DCOM传递字符串数组!!
在三层开发中,为了安全,通常,不会将SQL语句直接传递到服务端;那有些功能又不能写死的软件中。。特殊是SQL。所以通常我们会在将一些SQL语句放在数据表中,给第一个SQL语句一个ID,这样在客户端,仅指定ID就行,可是对于一个带查询条件的SQL语句,就需要带一个依据传递到 服务器端了。比如:我们的数据表中存在:ID SQLSTRING1 SELE原创 2013-05-06 16:57:45 · 724 阅读 · 0 评论 -
读一读Scktsrvr.exe的源程序
读一读Scktsrvr.exe的源程序使用DELPHI做多层开发的朋友们都应该对Scktsrvr.exe这个程序不陌生的,Borland公司在DELPHI中给出了它的源代码。这是一个900来行的程序,程序不算长,现在我只选其中部分仔细读一读。走的线路大致是,从服务器接到客户端连接,处理客户端的一个请求(这儿选了客户端向服务器发出的'取应用服务器列表'请求)服务器接受转载 2013-06-25 15:14:42 · 917 阅读 · 0 评论 -
利用ScktSrvr打造多功能Socket服务器
Socket服务端编程中最重要的也是最难处理的工作便是客户请求的处理和数据的接收和发送,如果每一个Socket服务器应用程序的开发都要从头到尾处理这些事情的话,人将会很累,也会浪费大量时间。试想,如果有一个通用的程序把客户请求处理和数据的接收、发送都处理好了,程序员只需要在不同的应用中对接收到的数据进行不同的解析并生成返回的数据包,再由这个通用程序将数据包传回客户端,这样,程序设计的工作将会轻松许转载 2013-06-25 15:21:49 · 1494 阅读 · 0 评论 -
DATASNAP 中的 OleVariant
OleVariant,COM的一种数据类型。MIDAS基于COM之上构建的,自然使用OleVariant作为数据序列格式。延续到现在最新的DATASNAP仍然支持它。TClientDataset.data,TClientDataset.delta,这俩个属性的类型都是OleVariant。OleVariant可以是string,integer,float...这个大家都知道,但它也可以转载 2013-07-03 00:43:52 · 1287 阅读 · 0 评论 -
clientdataset<---->json
unit uJSONDB; interface uses SysUtils, Classes, Variants, DB, DBClient, SuperObject, Dialogs; type TJSONDB = class private class function getJsonFieldNames(res: ISu转载 2013-07-03 00:40:20 · 1475 阅读 · 0 评论 -
DATASNAP双缓存下载文件
procedure TFrmMain.btnUpdateFilesClick(Sender: TObject);begin try if Assigned(gEXEmm) then FreeAndNil(gEXEmm); if Assigned(gINImm) then FreeAndNil(gINImm); gEXEmm := TFileS转载 2013-07-03 23:27:23 · 944 阅读 · 0 评论 -
Delphi三层开发小技巧:TClientDataSet的Delta妙用
Delphi做三层开发时,很多人都会在客户端放一个TClientDataSet,中间层远程数据模块就对应放一个TDataSetProvider,然后再连起来.其实这种方法很烦琐,而且程序痈肿不甘,不好维护.我们都知道TClientDataSet的Delta属性记录了数据的所有修改,应用它我们就可以方便的实现一个单表更新的通用方法. 首先,在中间层添加一个方法,就叫ApplyUpd转载 2013-07-29 16:30:01 · 1137 阅读 · 0 评论 -
(DELPHI_XE)Datasnap 'ERROR_CODE'. The allowed range is 0 to 4294967295'
在用ADO+TClientDataSet操作数据库时,用DataSetProvider.ApplyUpdates更新时可能会因为某种错误而提示如下:Project Project1.exe raised exception class EDatabaseError with message '-2147217900 is not a valid value for field 'ERR原创 2013-11-15 10:08:05 · 1436 阅读 · 0 评论 -
adoquery + dsp + clientdataset + dbgrideh 数据排序的问题;
在维护COM+结构的三层结构的软件时,如果在服务端使用adoquery 查询后由 DSP 打包再传到客户端。这种方式,效率很低,,通常查询结果,是不再需要 apply 到服务器的。所以,我自己采用的方式,是在服务器端用 adoquery 查询,然后直接将 ADO结果直接传到客户端(不再经过DSP),然后再在客户端使用 adoquery 来接收数据;这样数据高效。但是在客户端直接使用da原创 2013-12-24 15:27:00 · 1399 阅读 · 0 评论 -
关于DATASNAP传递Record类型到客户端的问题
以前,使用 DELPHI XE 时,可以使用类型如下的代码来原创 2014-06-03 00:08:43 · 7478 阅读 · 0 评论 -
Datasnap 使用JSON 传递数据的简易方法
在上一篇文章中,使用了 OLE原创 2014-06-05 23:45:12 · 9647 阅读 · 0 评论 -
DataSnap 2009 系列
(连接篇) Delphi 的MIDAS出来了这么多年终于有改进的版本了,COM-FREE的DataSnap 2009真是清爽了很多,DataSnap 2009 除了不支持回调和Intercept组件以外 其它的该有的都有了 而且还有很多强大的特性; 第一篇就先写点DataSnap 2009连接方面可能要用到的东西,以后再继续写写关于生命周期的管理 对象池的应用 以及远程管理转载 2010-02-28 15:53:00 · 2454 阅读 · 0 评论 -
delphi 三层开发经验汇总
delphi很早就已经可以进行三层的开发了. 但一直到现在, 网上这方面的东西太少 了. 要么太老, 甚至不完全正确. 例如:如何进行多表更新(提交), 很多回复还是说用ADOConnection的事务, (如果要同时更新SQL SERVER和Oracle数据库的表怎么办).当然也有说用SetComplete, SetAbort的. 但说的很简单, 其中的注意事项又是什么呢.转载 2010-02-22 22:59:00 · 3315 阅读 · 1 评论 -
Delphi三层架构基础
在使用DataModel窗体存放数据库控件的程序中,应注意:1、如果在其他窗体中调用DataModel中的控件必须在先引用Datemodel的单元,在implementation下面加入以下语句uses DataModel的单元名称;2、必须改变窗体的创建顺序,datamodel窗体必须先于引用该窗体控件的窗体创建三层结构应用层:一、需要三个转载 2009-04-21 16:45:00 · 992 阅读 · 0 评论 -
delphi 多层数据库开发
服务器端程序 服务器端程序实际上是个COM 工程,它本身连接数据源,再通过接口与 客户端联系,这个COM 工程必须注册在服务器上。 首先建立一个空白的工程。 file -> New -> Other -> Multitier -> Remote Data Module(远程数据模块) 对话框: Coclass Name : COM程序的名转载 2009-04-21 16:46:00 · 1012 阅读 · 0 评论 -
Delphi编程:三层数据库构架实例解析
在数据库开发方面Delphi相对于其他众多开发工具其优势在于灵活快速,且十分稳定。开发数据库首先是要连接数据库。目前,以C-S方式通过网络运行程序,一般都使用3层方式进行数据通信。所谓的三层数据库,就是在服务器端放置一个中间层,本实例使用Remote Data Module(远程数据模块)创建,3层的好处就是把一些功能放在中间层,这样当某些功能发生转变时,既不用修改数据库,也不用修改客户端,只要转载 2009-04-21 16:48:00 · 1504 阅读 · 0 评论 -
让Delphi的DataSnap发挥最大效率
一个DataSnap的应用程序由两个层组成:DataSnap服务器,它有一个带有一个或者更多DataSetProvider组件的远程数据模块;DataSnap客户端,它带有一个xxxConnection组件和一个或者多个连接到DataSetProviders的ClientDataSets。你可以不使用ClientDataSet而换用XMLBroker组件,后者是专门用在InternetE转载 2009-05-10 16:31:00 · 764 阅读 · 0 评论 -
基于Delphi的三层数据库系统的实现方法
摘要随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。而中间件作为分布体系应用的关键技术,以其独特的优势为各种摘要随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。而中间件作为分布体系应用的关键技术,以其独特的优势为各种分布式应用的开发注入了强大动力,极大地推动了应用系统集成的发展。论文描述了基于Delphi中间件的三层结构访问数据库信息的方法。转载 2009-05-10 14:58:00 · 1887 阅读 · 1 评论 -
三层服务器自动注册
在数据模块的初始化段(initialization)增加一行代码就可以了:initialization ComServer.UpdateRegistry(True); {加上此行语句可以起到自动注册的作用}end.原创 2009-05-10 01:26:00 · 832 阅读 · 0 评论 -
Delphi之MIDAS三层完美解决方案----中间层构建
思路:中间层与客户端通过五个关键的接口过程进行交互操作(OpenData,SaveData,DeleteData,ExecRule,ExecProd)OpenData:获取数据集。 客户端传递数据标记给中间层, 中间层根据数据标记请求和条件从数据库的配置文件中获取相关信息, 得到数据,返回客户端转载 2009-05-14 13:11:00 · 1848 阅读 · 0 评论 -
Client:TSocketConnection 和Server: Scktsrvr关系----压缩数据传输
一直用SocketConnection和服务端的传输数据在三层数据库中,从来没有注意到它们之间的数据传输,只是想着,管它了,网络的事,前段时间在Delphi中的Demos中发现Demos/Midas/Intrcpt.dpr例子,呵呵,再看了半天的VCL发现可以将Client端发送的给Server的数据,和Server发送给Client的数据是可以进行压缩的转载 2009-05-14 13:16:00 · 958 阅读 · 0 评论 -
读一读Scktsrvr.exe的源程序
使用DELPHI做多层开发的朋友们都应该对Scktsrvr.exe这个程序不陌生的,Borland公司在DELPHI中给出了它的源代码。这是一个900来行的程序,程序不算长,现在我只选其中部分仔细读一读。走的线路大致是,从服务器接到客户端连接,处理客户端的一个请求(这儿选了客户端向服务器发出的"取应用服务器列表"请求)服务器接受了客户端连接后,因为Server转载 2009-05-14 13:19:00 · 736 阅读 · 0 评论 -
delphi三层架构
三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。这样做的好处是层次分明,维护好做,系统资源也好分布式处理。数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层业务逻辑的话要分析清楚,就是中间层界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有效性分析最好放在界面层,以充分利用客户端的性能。不然的话业务逻辑层的负转载 2009-05-14 13:20:00 · 1047 阅读 · 0 评论 -
Delphi三层的事务处理方法
写一个远程方法 形式为: procedure trandelta(data1,data2,data3:olevariant); begin adoconnection1.begintran; datasetprovider1.as_a转载 2009-05-14 13:27:00 · 1378 阅读 · 0 评论 -
Delphi三层数据库开发应用
以下有关分布式数据库开发资料--来源网上 delphi 多层数据库开发 2006-10-20 04:22服务器端程序 http://hi.baidu.com/gzsunsos/blog/item/406918d5fe7be1c451da4bd转载 2009-05-14 13:31:00 · 1661 阅读 · 1 评论 -
delphi Delphi_三层开发基本概念介绍
三层客户/服务器 一:优点:灵活性和可扩展性。 应用三层开发技术(分布式)的原因 (参考书目: Delphi 5.x分布式多层应用系统篇) 一:解决客户机/服务器结构的维护成本问题,改善客户机/服务器结构延展性问题。 客户机/服务器结构支持的用户人数有一定限度(200人以下)。则种结构限制了Internet/Intran转载 2009-05-14 13:34:00 · 1205 阅读 · 0 评论 -
delphi线程
http://hi.baidu.com/%D4%B6%BA%BD%5F%C3%BB%D3%D0%B7%AB/blog/category/delphi%D6%AE%CF%DF%B3%CC原创 2009-05-14 13:35:00 · 614 阅读 · 0 评论 -
三层的例子
随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。 大多数文章中都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,主业务服务,及数据库库服务层。 今天主要讨论一下业务层吧。举个最简单的例子。客户端获取数据。 业务层要与表示层尽量解藕, 我的方法是:首先我们在中间层TLB_中定义转载 2009-09-28 14:59:00 · 1052 阅读 · 0 评论 -
DataSnap 2009的简单使用
DataSnap 2009是从Delphi2009开始提供的新的DataSnap,对原有DataSnap大副改进,虽然保留了原来的基于COM的方式,但默认是使用新的不基于COM的方式,这使得它成为轻量级的、灵活的多层应用技术。这也为将来的跨平台提供了基础。Delphi2010继续新的DataSnap,应该叫DataSnap 2009呢?还是DataSnap 2010?命名不太明确。转载 2010-02-14 00:46:00 · 1854 阅读 · 0 评论 -
Delphi三层架构的一种方法
Delphi三层架构的一种方法Delphi三层架构的一种方法理解:把服务端数据取回客户端,在客户端操作(如添加)完毕后,传到服务器端统一更新。 需在客户端选取回表信息(结构,内容)。前题: scktsrvr.exe(delphi安装的程序目录里有, 需启动) midas.dll(windows系统目录里有此文件,从新注册转载 2009-04-21 16:44:00 · 2311 阅读 · 0 评论