客户端的一个连接(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控件的Drive