如何获取 TDSProviderConnection.SQLConnection 的远程 SQLConnection?
使用 DataSnap 2009,我似乎可以使用 TDSProviderConection 和关联的 TSQLConnection 在客户端数据模块中使用远程数据库连接。客户端很容易设置,我在表单上放置一个 TSQLConnection 并将其链接到 TDSProviderConnection 组件。
但是服务器端的远程数据模块中向客户端提供“真实”SQLConnection 的步骤是什么?我有一个继承自 TDSServerModule 的服务器模块、一个 TDSTCPServerTransport、一个 TDSServer 和一个 TDSServerClass 组件。如何将它们链接到服务器端 TSQLConnection?
With DataSnap 2009 i seems to be possible to use a remote database connection in the client datamodule, using a TDSProviderConection and an associated TSQLConnection. The client side is easy to set up, I drop a TSQLConnection on the form and link it to the TDSProviderConnection component.
But what are the steps in the remote datamodule on the server side to provide the 'real' SQLConnection to the client? I have a server module which inherits from TDSServerModule, a TDSTCPServerTransport, a TDSServer and a TDSServerClass component. How do I link these to a server side TSQLConnection?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实上,从 DataSnap 2009 客户端访问服务器端数据库连接的最简单方法是仅使用 TSQLConnection 组件。将其“Driver”属性设置为“DataSnap”,并在“ServerConnection”子属性中指定返回“TDBXConnection”引用的服务器方法。
您可以手动将这样的服务器方法添加到远程数据模块。使用内置的“DSAdmin.GetConnection”服务器方法更容易,只需指定 DBExpress 连接的名称,因为它出现在服务器端的数据资源管理器中或在 DBXConnection.ini 文件中指定。问题是在连接名称周围使用双引号。
例如,如果您在数据资源管理器中有名为“IBEMPLOYEE”的 InterBase 连接,只需在“ServerConnection”中输入以下字符串:
DSAdmin.GetConnection(“IBEMPLOYEE”)
并将“Connected”属性设置为“true”。
在这种情况下,您不需要在 DataSnap 服务器上进行任何特殊操作。事实上,您甚至不需要服务器模块,因为您使用的是内置模块。
你好,
帕维尔
In fact the easiest way to access the serverside database connection from DataSnap 2009 client is to use just a TSQLConnection component. Set its "Driver" property to "DataSnap" and in the "ServerConnection" subproperty specify a server method that returns a "TDBXConnection" reference.
You can manually add such a server method to your remote data module. It is easier to use a build-in "DSAdmin.GetConnection" server method and just specify then name of the DBExpress connection as it appears in Data Explorer on the serverside or is specified in DBXConnection.ini file. The gotcha is to use double quotes around connection name.
For example if you have an InterBase connection named "IBEMPLOYEE" in Data Explorer, just enter into "ServerConnection" the following string:
DSAdmin.GetConnection("IBEMPLOYEE")
and set "Connected" property to "true".
In this scenario you do not need to anything special on the DataSnap server. In fact you do not even need a server module as you are using a built-in one.
HIH
Pawel