Datasnap
文章平均质量分 63
我的蓝色理想
一名热爱编程的码农
展开
-
创建 Delphi DataSnap 程序的问题集萃(1)
当我们开始创建第一个 DataSnap 商业软件前,有些技术上的问题必须明确。 DataSnap 是三层架构,客户端暂且不谈,我们先讨论一下服务器端的架设。 在服务器端,其实要实现两层架构:业务逻辑部分、数据访问部分。 在 DataSnap 中,我们使用 TDSServerModule 类,将业务逻辑展示给客户端。也就是说,只有这个类中的 Public 方法才能被客户原创 2013-12-24 15:50:10 · 1760 阅读 · 0 评论 -
创建 Delphi DataSnap 程序的问题集萃(2)
当服务器端使用 Invotation 模式的生命周期,且大量的客户端连接时,我们可以采用对象池的设计,为 TDSServerModule 建立对象池,这其实也是数据库连接对象的对象池。 这带来了新问题:我们的业务对象如何取得数据库连接? 数据库连接对象存在于 TDSServerModule 中,而 TDSServerModule 是用户连接并执行服务器方法时动态创建。如果业务对原创 2013-12-29 10:04:48 · 1660 阅读 · 0 评论 -
创建 Delphi DataSnap 程序的问题集萃(3)
(本文所讨论的开发环境,为 Delphi XE5) 本篇介绍如何实现服务器端数据库连接的共享。 常见的数据库连接实现,是为每个数据模块建立一个连接。但这样做将产生大量的数据库连接,并产生很多问题。 在上一篇,我们分析了 Datasnap 客户端连接服务器端时相关事件的执行顺序。其中,ServerContainerUnit1 容器是在服务器端一开始运行时就创建,直到原创 2013-12-29 11:07:25 · 1710 阅读 · 0 评论 -
创建 Delphi DataSnap 程序的问题集萃(4)
(本文所讨论的开发环境,为 Delphi XE5) 最近有点小忙,博客只能忙里偷闲地写了。 本篇介绍如何在客户端和服务器端之间传递数据。 我本人很不喜欢在页面上频繁地使用数据感知控件,并使用 DataSet 来作为参数传来传去——因为 DataSet 并不是一个强类型类,而且它与数据库的耦合性太紧了。 相比较于 DataSet(如 TClientDataSe原创 2014-01-20 23:22:42 · 1540 阅读 · 0 评论