云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Delphi 2010 DataSnap白皮书1

Delphi 2010 DataSnap白皮书1

  • 62 次阅读
  • 3 次下载
  • 2026/1/27 10:10:36

TDSProviderConnection.

首先,我们要确保服务端公布了一个数据集,打开ServerMethodsUnitDemo并在数据模块中添加

一个TSQLConnection组件.连接TSQLConnection组件到数据库和表(本例我连接到BlackFishSQL的

Employees表).将TSQLConnection组件添加到数据模块的设计区域.设置Driver属性为

BlachFishSql.然后设置Database属性为employee.jds文件的路径: C:\\Documents and Settings\\All

Users\\Documents\\RAD Studio\\7.0\\Demos\\database\\databases\\BlackfishSQL on Windows

XP, or C:\\Users\\Public\\Documents\\ RAD

Studio\\7.0\\Demos\\database\\databases\\BlackfishSQL.

将TSQLConnection的LoginPrompt属性设置为False.设置Connected属性为True验证是否能正确连 接.

下一步,添加一个TSQLDataSet组件,将其SQLConnection设置为TSQLConnection组件.

设置其CommandType为ctQuery,双击CommandText属性输入SQL语句. SELECT EMP_NO, FIRST_NAME, LAST_NAME, HIRE_DATE, JOB_COUNTRY FROM EMPLOYEE

确保在设计时设置了TSQLConnection组件的LoginPrompt和Connected属性为False,及

TSQLDataSet的Active属性为False.

现在在ServerMethodsUnitDemo单元的TServerMethods1类中添加一个public方法返回一个

TSQLDataSet组件. type

TServerMethods1 = class(TDSServerModule) SQLConnection1: TSQLConnection;

SQLDataSet1: TSQLDataSet; private

{ Private declarations } public

{ Public declarations }

function EchoString(Value: string): string; function ServerTime: TDateTime; function GetEmployees: TDataSet; end;

如你所见,TServerMethods1类中定义了一个叫做GetEmployees的方法,实现如下:

function TServerMethods1.GetEmployees: TDataSet; begin

SQLDataSet1.Open; // make sure data can be retrieved Result := SQLDataSet1 end;

重新编译服务并运行.注意如你关闭了服务但无法重新编译,可能是DataSnap服务还在运行.

3.1. TSQLSERVERMETHOD

回到DataSnap客户端,TSQLConnection组件应该已经断开到DataSnap服务端的连接(如果仍然连

接,说明你没有重新编译服务端).重新将Connected设置为True,从服务端更新信息,并重新从服务

端生成客户端类(使用右键菜单).

为了重写原来的ServerMethodsClient单元,推荐从项目中移除原来的ServerMethodsClient后

在选择’Generate DataSnap Client Classes’方法.保存了新的单元文件后不需要修改客户端代

码.生成了新文件后,可以从中看到GetEmplorees方法. type

TServerMethods1Client = class private

FDBXConnection: TDBXConnection; FInstanceOwner: Boolean;

FEchoStringCommand: TDBXCommand; FServerTimeCommand: TDBXCommand; FGetEmployeesCommand: TDBXCommand; public

constructor Create(ADBXConnection: TDBXConnection); overload; constructor Create(ADBXConnection: TDBXConnection; AInstanceOwner: Boolean); overload; destructor Destroy; override;

function EchoString(Value: string): string; function ServerTime: TDateTime; function GetEmployees: TDataSet; end;

为使用GetEmployees方法获取TDataSet,我们可以使用TsqlServerMethod组件.将

TsqlServerMethod组件添加到客户端窗体,设置其SQLConnection属性为SQLConnection1,然后打

开ServerMethodName下拉框显示可用的方法:一些DSAdmin方法(可通过设置TDSServer的

HideDSAdmin属性为True禁止),接下来是三个DSMetaData方法,七个TServerMethods.As_XXX方法

(由原来的IAppServer提供),和最后我们自己的TServerMethods1的方

法:EchoString,ServerTime,

和GetEmployees方法.

本例我们选择TServerMethods1.GetEmployees作为ServerMethodName属性的值.根据

ServerMethodName属性值,SqlServerMethod控件获取查询结果记录集. 我们使用TDataSetProvider,TClientDataSet和TDataSource来使数据显示在TDBGrid中.

在客户端添加一个TDataSetProvider控件,将其DataSet设置为SqlServerMethod控件.下一步添

加一个TClientDataSet控件,将其ProviderName设置为DataSetProvider控件.设置其

RemoteServer属性为空—--这是用于原有DataSnap的方法,在新的DataSnap架构中不再使用.

最后,放一个TDataSource控件,设置其DataSet为TClientDataSet控件,然后就可以放TGBGrid和

TDBNavigator控件了.设置其DataSource为TDataScource组件,将可以在客户端窗体中看到数据.

为了在设计时验证连接,我们设置ClientDataSet的Active属性为True.将触发SqlServerMethod

的Active为True(开始检索数据,然后自动将Active设置为False),同时会将 TSQLConnection.Connected设置为True连接到服务端.

这种方式连接一直保持,TCliendtDataSet和TSQLConnection的被激活,数据显示在TDBGrid中.

这种方式很容易以只读方式查看数据.注意这里说只读,因为TSQLServerMethod不允许

TDataSetProvide-TClientDataSet组合将客户端的数据变更传回服务端. TSQLServerMethod是轻量级方式连接获取只读数据.这样,如果你需要获取DataSnap服务器上的

数据但不需要做修改,当前这种发布一个返回TSQLDataSet结果集方法的架构就很好.

然而,有时我们需要更新数据,这时就必须使用不同的方法获取数据. 3.2. TDSPROVIDERCONNECTION

搜索更多关于: Delphi 2010 DataSnap白皮书1 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

TDSProviderConnection. 首先,我们要确保服务端公布了一个数据集,打开ServerMethodsUnitDemo并在数据模块中添加 一个TSQLConnection组件.连接TSQLConnection组件到数据库和表(本例我连接到BlackFishSQL的 Employees表).将TSQLConnection组件添加到数据模块的设计区域.设置Driver属性为 BlachFishSql.然后设置Database属性为employee.jds文件的路径: C:\\Documents and Settings\\All Users\\Documents\\RAD Studio\\7.0\\Demos\\database\\databases\\BlackfishSQL on Wi

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com