当前位置:  开发笔记 > 编程语言 > 正文

Delphi:使用TClientDataset作为内存数据集

如何解决《Delphi:使用TClientDataset作为内存数据集》经验,为你挑选了5个好方法。

根据此页面,可以将其TClientDataset用作内存数据集,完全独立于任何实际数据库或文件.它描述了如何设置数据集的表结构以及如何在运行时将数据加载到其中.但是当我试图遵循D2009中的指示时,步骤4(table.Open)引发了异常.它说它没有指定提供者.

该页面上示例的整个要点是构建不需要提供程序的数据集.页面是错误的,它是否过时,或者我在某个地方错过了一步?如果页面错误,我需要使用什么来创建一个完全独立的内存数据集?我一直在使用TJvMemoryData,但如果可能的话,我想减少我的数据集添加到项目中的额外依赖项的数量.



1> MikeJ..:

在运行时,您可以使用table.CreateDataset或如果它在设计图面上,您可以右键单击CDS并单击创建数据集.您需要先为CDS指定列/类型,然后才能执行此操作.



2> jrodenhi..:

如果它有进一步帮助,这里是一段代码,我在其中创建了一个ClientDataset,用作内存表:

procedure TfrmPRMain.ConfigureDataset;
begin
  With cdsMain do begin
    FieldDefs.Add('bDelete', ftBoolean);
    FieldDefs.Add('sSource', ftString, 10);
    FieldDefs.Add('iSection', ftInteger);
    FieldDefs.Add('iOrder', ftInteger);
    FieldDefs.Add('sBranch', ftString, 10);
    FieldDefs.Add('sPulseCode', ftString, 10);
    FieldDefs.Add('sCode', ftString, 10);
    FieldDefs.Add('dtWorkDate', ftDate);
    FieldDefs.Add('iWorkWeek', ftInteger);
    FieldDefs.Add('sName', ftString, 50);
    CreateDataSet;
    LogChanges := False;
    Open;
  end;
end;

您只需替换自己的数据信息即可.插口


您不需要打开电话.

3> vrad..:

不要忘记在您的安装中包含MIDAS.DLL,或者只是在uses子句中包含MidasLib.否则使用TClientDataSet会在客户端的计算机上引发错误.也许这很明显,但我实际上忘了这一次.


如果您想要包含MidasLib,请注意[此错误](http://stackoverflow.com/q/15449386/2523663).

4> Tom..:

您可以使用 table.CreateDataSet



5> F.D.Castel..:

此页面中的代码在任何Delphi版本中都不起作用.对CreateDataSet的调用已经将数据集置于活动状态("已打开").您应该使用.CreateDataSet OR .Open.不是都.

当您想要自己填充数据集时,如果要从Provider(通过ProviderName属性)和.CreateDataSet获取数据,请使用.Open.

顺便说一句:有关ClientDataSets及其功能的深入参考,请参阅CodeGear Developer Network上的优秀Cary Jensen文章(首先阅读最旧的文章)

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有