Transactional Data module 与 Transactional Object有什么区别?它们是如何向客户端传递数据的。最好能给个例子(刚学三

  • 主题发起人 主题发起人 netsupper
  • 开始时间 开始时间
N

netsupper

Unregistered / Unconfirmed
GUEST, unregistred user!
Transactional Data module 与 Transactional Object有什么区别?它们是如何向客户端传递数据的。最好能给个例子(刚学三层的)(100分)<br />Transactional Data module 与 Transactional Object有什么区别?它们是如何向客户端传递数据的。最好能给个例子。
看了李维的书大部份都是说Data module,看了一部分后就搞不清Data module 与Transactional Object的区别。只知道Data module的模式是在中间层用DataSetProvider读取数据,然后再通过数据包传到前台的ClientDataSet。如果不用这些组件就不会做了。 如果不用Data module的模式,VB里可以返回recordset,Delphi是如何传递数据到前台?
 
Transactional Data module主要是访问数据库用的
Transactional Object主要是在服务端作商业逻辑用的,一般不访问数据库
 
在Transactional Data module中使用DataSetProvider,然后在Transactional Object新增一个方法,在方法中创建Transactional Data module,并调用AS_Getrecords函数,将Datasetprovider的data作为出口参数返回给客户端
 
以下是个例子:
procedure GetBook(vCookie:OleVariant;var vDatas:OleVariant);
var
bookObj:ImtsBookObj;
aps:IAppServer;
Options:TGetRecordOptions;
iRecOut:Integer;
OwnerData:OleVariant;
Params:OleVariant;
begin
if VerifyCookie(vCookie) then
begin
try
OleCheck(ObjectContext.CreateInstance(CLASS_mtsBookObj,IID_ImtsBookObj,bookObj);
aps := bookObj as IAppServer;
Options := [grMetaData,grReset];
vDatas := aps.AS_GetRecords('dspBooks',-1,iRecOut,Byte(Options),'',Params,OwnerData);
SetComplete;
except;
SetAbort;
end;
end;
end;
 
李维的书上的,哈哈!
 
后退
顶部