打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DataSnap客户端共享服务器端的数据库连接

客户端的一个连接(SQLConnection)能够共享服务器方法对数据库的访问连接。这样就可以做到一个客户端连接唯一关联服务器端的一条数据库连接;通过该共享连接,在客户端可以直接执行数据库的SQL语句以及存储过程,并且可以与服务器端的调用方法处于相同的事务上下文中。

 

共享连接的实现,是通过客户端调用服务器的一个返回TDBXConnection实例的方法来实现的。该返回实例并不是真正地返回到客户端,它仍然保留在服务器端,客户端随后提交执行的SQL语句或存储过程,就是由此实例来负责完成。为在客户端实现上的方便起见,返回TDBXConnection实例的服务器端调用方法可以在客户端的SQLConnection控件的TDBXPropertyNames.ServerConnection属性中指定,当客户端执行SQLConnection.Open时,就获得了一个服务器端的数据库共享连接。比如服务器端提供了这样一个函数:function TServerMethods1.GetShareConn: TDBXConnection,ServerConnection属性就设置为'TServerMethods1.GetShareConn'。

 

DataSnap也提供了一个内建方法DSAdmin.GetConnection返回TDBXConnection,客户端可以直接使用它来建立共享连接。但此方法要求服务器端部署dbxconnections.ini文件。在设计时,可以在IDE的Data Explorer预先创建一个数据库连接,比如取名为'myoracleconnection'。则客户端的ServerConnection属性就设置为DSAdmin.GetConnection("myoracleconnection")。

 

客户端共享连接的使用也是很简单的。客户端SQLConnection控件的Driver属性是'DataSnap',本来在客户端不能直接提交执行SQL语句或存储过程的,但在建立共享连接之后,就可以把该SQLConnection控件视为已经连接到数据库而不是DataSnap服务器,我们就可以在客户端放入TSQLDataSet控件,指定SQL语句或存储过程来执行;如果要返回数据集,就再放入TDataSetProvider、TClientDataSet等控件来实现。这样一来,就与以前的二层数据库应用开发非常类似了。

 

客户端在使用共享连接提交执行SQL语句或存储过程的同时,仍然可以通过该SQLConnection调用DataSnap服务器端暴露的服务器方法。

 

共享连接这种应用形式并不常见,但在某些特殊场合可能有用,比如由客户端完成数据库事务处理操作的时候。同时,共享连接,也可以减少数据库的并发连接数量,从而有效地降低服务器的资源使用情况。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SqlConnection SqlDataAdapter SqlCommand
DELPHI DATASNAP 2010 入门操作(1)为什么要用datasnap 201...
简单的datasnap三层,【服务器】怎么获取【连接客户端】的【计算机名】
Delphi DataSnap 初步入门使用总结
DataSnap 2009 系列
使用delphi 开发多层应用(八)客户端更新数据到kbmMW服务器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服