简单的写一个返回数据集的程序
一,服务端
TServerMethods1 = class(TDataModule) SQLConnection1: TSQLConnection; SQLDataSet1: TSQLDataSet; private { Private declarations } public { Public declarations } function EchoString(Value: string): string; function ReverseString(Value: string): string; function GetEmployees: TDataSet; end;在xe2里服务端写代码,{$METHODINFO ON/OFF}的编译指令不需要了。
function TServerMethods1.GetEmployees: TDataSet; begin with SQLDataSet1 do begin CommandText := 'SELECT * FROM Employees'; Open; end; Result := SQLDataSet1; end;这样就返回了一个数据集,DataSnap会在内部进行marshall和unmarshall,让客户端得到这个DataSet。
二,客户端
客户端更简单
一般配置为TClientDataSet-->TDataSetProvider-->TSqlServerMethod-->TSQLConnection
就能显示出来服务器上返回的数据集了,但这样返回的数据集,是不能直接调用ClientDataSet.ApplyUpdates来更新的。
要让DataSnap能自动更新,只能让服务器端用TDataSetProvider来export的方法数据客户端用TClientDataSet-->TDSProviderConnection-->TSQLConnection才行,但一般实际应用中,服务器的逻辑比较多的不仅仅是增加删除记录这么简单,比较少用DataSnap的自动更新。
没有评论:
发表评论