首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

3.7  MyBase

DelphiMIDAS/DataSnap技术从推出之后便支持BriefCase模式的数据处理能力。所谓BriefCase模式是指客户端应用程序在使用DataSnap技术从数据来源取得了数据之后,可以临时把数据储存在客户端的机器之中,切断和数据来源的连接,再继续处理数据。当客户端处理完毕之后,又可以连接数据来源,再把客户端更改的数据更新回数据来源中

这种数据处理的模式非常适合需要把数据带出企业,在客户处处理数据,再回到企业中更新在客户端处理的数据。例如许多Sales需要在会见客户之前从系统下载产品信息,到客户处展示、更改数据,最后再回到公司把最新的数据更新回企业的系统中。

Delphi 6的后续版本中,Borland又再次扩充BriefCase的数据处理模式,允许程序员使用XML的格式在客户端储存数据,或是和其他系统以XML的格式交换数据,因此把这种功能称为MyBase

TSimpleDataSet/TClientDataSet中提供了两种方法允许程序员把数据临时储存在文件之中,以及再从文件中加载先前储存的数据,它们就是SaveToFile以及LoadFromFileSaveToFile除了可以储存数据之外,也允许程序员使用不同的格式来储存数据,程序员可以储存为二进制格式或是XML的格式。下面是SaveToFile的原型声明

SaveToFile(const FileName: string = ''; Format TDataPacketFormat=dfBinary);

SaveToFile的第一个参数是储存的文件名称,第二个参数则是让程序员指定的储存格式,默认储存为二进制格式。表3-7列出了TDataPacketFormat能够拥有的数值以及这些数值代表的意义。

3-7

TDataPacketFormat

意义

dfBinary

以二进制格式储存TSimpleDataSet/TClientDataSet之中的数据

dfXML

XML格式储存TSimpleDataSet/TClientDataSet之中的数据

dfXMLUTF8

XMLUTF8格式储存TSimpleDataSet/TClientDataSet之中的数据

LoadFromFile方法则更简单,它只接受一个要加载数据的文件名称参数:

procedure LoadFromFile(const FileName: string = '');

如果程序员使用XML格式储存数据,那么就可以再和其他的应用程序交换数据。程序员可以使用Delphi提供的XML Data Binding向导来进行数据交换的工作。下面的片断程序代码显示了如何使用SaveToFileLoadFromFile方法来储存和加载TSimpleDataSet/TClientDataSet中的数据。

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

  if (Self.rbtnBinary.Checked) then

    Self.sdsPerformers.SaveToFile(TFILENAME)

  else

  begin

    Self.sdsPerformers.SaveToFile(TFILENAME+ '.XML', dfXMLUTF8);

  end;

end;

 

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

  Self.sdsPerformers.Active := False;

  if (Self.rbtnBinary.Checked) then

    Self.sdsPerformers.LoadFromFile(TFILENAME)

  else

    Self.sdsPerformers.LoadFromFile(TFILENAME + '.XML');

end;

3-25显示了当用户在TSimpleDataSet中更改了数据之后通过调用SaveToFile把数据临时储存在一个XML文件中。

3-25  储存TSimpleDataSet中的数据到XML文件中

3-26是使用IE显示图3-25储存为XML格式的数据的画面,从图3-26中我们可以看到,DataSnap的确是把所有的数据正确地储存为XML的格式,这样一来,这个文件中的数据就可以顺利地和其他应用程序交换数据了。

3-26  IE显示DataSnap储存的XML格式的数据

虽然DelphiDataSnap能够让程序员储存数据到文件之中,稍后再加载数据回来,但是目前在Delphi 2006中的DataSnap在这方面似乎有一些小臭虫,在加载数据回来之后没有正确地处理Delta的特性值,在稍后Delphi 2006Patch中也许会更正。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论