DataSnap的代码演示(TCP/IP,IPPeerServer,IPPeerClient,TDSSessionManager,IOS)

明生注:收集一切相关资料,正文转自网络,当中大部份本人已测试,但是发现三层结构中,SESSION的会话周期一定要掌握好,否则极度容易出现这样的错误“First chance exception at $7C812FD3. Exception class TDBXError with message ‘The current session does not have permission to perform the requested action.’. Process ServerThread.exe (1820)”,在三层交互当中,如果不是采用客户端与客户端通讯的方式,最好直接使用HTTP,一来可以防止内网传输的限制,二来方便移植,而在数据库交互方面采集了HTTP方式最好和TCP的认证组件即(DSAuthenticationManager)分开来设置为最明智的选择,选择合适或自己开发相关的应用池,连接池,线程池也是提升任务执行和保证任务执行的安全做法。

 

 

看来,这是我的第一个帖子在新2013年,所以我希望你所有最好的,伟大的时间编写各种程序。 我相信这将是一个Delphi和伟大的一年马可预测下月,尤其是德尔福将成为成人!

两年前我已经放在一起的联赛德尔福DataSnap教程“德尔福实验室”和许多人发现它有用,所以我认为这是一个高时间为每个至少更新代码示例教程所以他们用最新版本的编译现在XE3 Delphi。

下面是更新的列表德尔福实验室DataSnap集信息更改,原始XE代码示例和实际CodeCentral链接。 为了简单起见我CodeCentral reuploaded每个演示源代码相同URL,因此链接代码保持不变。 在每个压缩文件有两个顶级文件夹:“XE”原始文件和“XE3”更新源代码。

你可以找到主页面所有DelphiLabs DataSnap XE教程www.embarcadero.com/rad-in-action/delphi-labs

集01:简单的计算器服务– – – – – –视频白皮书源代码

服务器和客户端项目编译好,不过如果你运行服务器或者客户端,您将获得“EIPAbstractError”异常与“不同行与接口guid[… 已经注册”。

这个错误来自哪里? 在这个例子中我们使用DataSnap TCP / IP连接,这是内部使用印地框架实现。 印地赛车实现XE和XE3版本之间发生了变化,所以有小的变化。 在服务器上有必要补充“IPPeerServer”界面“ServerContainerUnit1”和“使用”条款对客户我们需要添加“IPPeerClient”界面中的“使用”条款“ClientModuleUnit1”。 事实上IDE可以自动添加这些条目。 把光标在“使用”条款的这两个文件,当你按下“输入”正确的条目将被添加为您服务! 酷:-)

我还添加了一个项目小组文件“SimpleCalcGrp”和更新形式的标题“XE3”。

集02:多层数据库应用程序– – – – – –视频白皮书源代码

两个修改源代码。 一个相同集01,涉及添加失踪“IPPeerServer”和“IPPeerClient”单位“使用”条款在服务器和客户端项目。 第二个变化改变了服务器上的数据库连接名称TSQLConnection组件从“IBEMPLOYEE”到“员工”。 德尔福XE3附带了一个预配置的“员工”样本不同的数据库连接,所以你可以打开项目组织构建,运行服务器,然后运行客户机,它应“是”。 一个真正的多层数据库应用程序!

 

集03:服务器生命周期方法– – – – – –视频1视频2白皮书源代码

第三个教程探索不同的服务器实例的生命周期方法的选择。 了解服务器端对象的生命周期DataSnap架构是至关重要的。 我刚刚添加缺失的“IPPeerServer”和“IPPeerClient”条目和更新形式的标题和大小。 下面是截图与一台服务器运行演示应用程序,两个客户机调用服务器上的方法服务器具有不同生命周期的对象选项集。

集04:测试DataSnap服务器在数据浏览器– – – – – –视频白皮书源代码

在Delphi XE3数据浏览器已经完全重新设计,现在更强大。 演示只包含一个服务器项目,聆听客户的TCP / IP端口211和HTTP端口8080。

唯一的修改原始源代码XE是添加“IPPeerServer”单位和更新表单标题。

集05:身份验证和授权– – – – – –视频1视频2白皮书源代码

标准的变化。 添加“IPPeerServer”和“IPPeerClient”单位加上字幕形式更新。

集06:运输过滤器– – – – – –视频白皮书源代码

超出标准的变化包括添加“IPPeerServer”和“IPPeerClient”单位和修改形式的标题,我还添加了一行到客户端“OnClick事件处理程序,以确保开放之前调用服务器的连接方法。

 SQLConnection1 如果不连接然后开放;

运输过滤器是一个非常优雅的特性!

集07:REST Web应用程序– – – – – –视频白皮书源代码

“Web应用程序”是一个走过的不同部分标准的Delphi REST应用程序向导生成的默认选项。 在本教程中“添加”服务器方法实现显示和动态生成的JavaScript代理。

XE和XE3之间有一些执行重构。 其中一个是“TDSSessionManager”类从“DSService”单位“DataSnap.DSSession”。 结果这是一个改变,必须做编译的XE版本DataSnap XE3 REST服务器应用程序:改变“使用”条款的主要形式单位和“DSService”替换为“DataSnap.DSSession”。 这是唯一改变除了更新主要形式的标题“XE3”。

集08(第1部分):WebBroker jQuery移动“样板”– – – – – –视频1视频2白皮书源代码

下两集意启发了演示,我不得不准备学生在伦敦大学学院(UCL)。 我想做新的和有趣的东西。 本教程是不是DataSnap,更通用。 DataSnap服务器可以实现为独立的可执行文件或驻留在web服务器。 “WebBroker”是所有web服务器的底层技术在德尔福项目类型:“DataSnap REST应用程序”,“DataSnap WebBroker应用”、“SOAP服务器应用程序”或只是一个自定义HTTP web服务器应用程序。

两年前jQuery移动不像现在那么广为人知,但绝对有其已经高“凉爽”因素。 在这个演示我的总和“jQuery移动样板”与一般的Delphi WebBroker程序作为起点到下一个教程。

Delphi XE的演示版本编译和作品在XE3没有修改,但是两年前jQueryMobile框架仍处于测试阶段,今天最新的稳定版本是“1.2.0决赛”。 我已经更新了演示项目引用最新的jQuery 1.8.2和jQuery移动1.2.0。

08年集(第2部分):jQuery移动Web前端– – – – – –视频1视频2视频3白皮书源代码

这是逻辑上的第二部分“WebBroker jQueryMobile样板”演示。 现在,我们知道如何设置一个通用的Delphi WebBroker HTTP服务器应用程序为jQuery移动标记,我们可以更进一步,显示数据从一个数据库,而不是一个静态的内容。

这一集演示了如何生成数据驱动jQueryMobile Delphi代码中动态网页生成HTML标记。

示例的源代码包含一个项目组有两个项目。 第一个项目是一个DataSnap独立服务器(“DataServerApp”)和一个数据库连接和体系结构非常类似于服务器的“集2:多层数据库应用程序”。 第二个项目作为一个客户,是一个扩展版的jQuery移动从上一次样板项目。

数据服务器中的项目有必要添加“IPPeerServer”单元的“使用”条款“ServerContainerUnit2”文件并改变“ConnectionName”SQL连接组件的“员工”(同样的变化如集2)。

修改客户端webbroker项目(“jQueryMobileApp”)涉及更新引用jQueryMobile版本使用相同的方式在“样板”事件之前。

我也更新了“关于我”的页面标记嵌入到Delphi代码对德尔福显示最新的信息,不同的和jQueryMobile版本使用。

示例程序已经更新和reuploaded Amazon EC2实例演示。 看看自己在移动设备上的web浏览器http://79.125.25.31:8080

这个演示展示了如何生成jQuery只读标记。 如果你感兴趣如何使用DataSnap休息和jQuery移动交互式网页,看看我的博客在这里

集09:DataSnap服务器作为Windows服务实现– – – – – –视频白皮书源代码

唯一的变化需要更新这个演示是一个标准的“IPPeerServer”单元服务器容器单元。 该项目编译好,安装和运行在Windows 8没有问题。

第十集:通过“普通Delphi对象”– – – – – –视频白皮书源代码

标准只更改:添加“IPPeerServer”和“IPPeerClient”单位,创建了一个项目小组convinience并更新表格标题。

集11:回调– – – – – –视频1视频2视频3白皮书源代码

这是最后一集从原始DelphiLabs DataSnap XE意,它只涉及DataSnap最强大的特性之一——回调。

服务器项目中我只改变了表单的标题,添加“IPPeerServer”标准的方式。

稍微涉及客户端项目。 如果你把一个光标在“使用条款”的“FormClientUnit”你会发现不仅添加“IPPeerClient”,但也“IPPeerServer”。 这是好的。 在这种情况下服务器项目就只是一座桥,“客户”都是发送和接收消息,所以他们都是作为客户端和服务器。 还需要添加“DataSnap。 DSSession”单位“使用”条款,因为“TDSTunnelSession”类在代码中使用已经搬到那里。 最后变化是添加代码来打开“SQLConnection1”表单的OnCreate事件。

当我回顾这些事件——我已经意识到这不仅是大量的工作,但也很有趣探索这种超级优雅的技术,所以…

德尔福实验室将返回!

此项目被张贴在未分类 。书签的 permalink

发表评论

电子邮件地址不会被公开。 必填项已用*标注