根据此页面,可以将其TClientDataset用作内存数据集,完全独立于任何实际数据库或文件.它描述了如何设置数据集的表结构以及如何在运行时将数据加载到其中.但是当我试图遵循D2009中的指示时,步骤4(table.Open)引发了异常.它说它没有指定提供者.
该页面上示例的整个要点是构建不需要提供程序的数据集.页面是错误的,它是否过时,或者我在某个地方错过了一步?如果页面错误,我需要使用什么来创建一个完全独立的内存数据集?我一直在使用TJvMemoryData,但如果可能的话,我想减少我的数据集添加到项目中的额外依赖项的数量.
我知道你实际上不能从记录中删除任何内容,但我不确定如何用一句话来概括我的问题.如果你这样做,请编辑标题.
我想要做的是创建一个通用类型的数组,它可以是X个类型之一,数组将填充那些自定义类型(它们具有不同的字段,这是重要的).简单的方法是只创建一个变量记录数组,每个变体都有自己的类型,但显然不能重新声明标识符,如下所示:
GenericRec = Record
case SubTypeName: TSubTypeName of
type1name: (SubRec: Type1);
type2name: (SubRec: Type2);
...
typeNname: (SubRec: TypeN);
end;
Run Code Online (Sandbox Code Playgroud)
更改SubRec到SubRec1, SubRec2... SubRecN品牌引用痛苦的,但并非不可能.因为我开始寻找上述问题的替代解决方案,所以我想起了课程.
显示我想要实现的TObject一个明显的例子是,可以将这些数组分配给许多不同的东西.这就是我想要的,但有记录(这是不可能做到的),因为我希望能够将记录保存到文件中并将其读回(也因为它是我已经熟悉的东西).制作我自己的简单类并不是一个问题,从中创建一个后代类来表示我的子类型 - 我可以这样做.但是如何写入文件并将其读回来呢?这归结为序列化,我不知道该怎么做.从我收集的内容来看,它并不容易,而且必须从这里下课TComponent.
TMyClass = Class
Run Code Online (Sandbox Code Playgroud)
如果我像上面那样上课,会有什么不同吗?它没什么特别的,最多有10个字段,包括一些自定义类型.
将序列化放在一边(仅仅因为我有很多关于该主题的阅读),在这里使用类也可能是不可能的.
在这一点上,我的选择是什么?我应该放弃记录并在课堂上尝试这个吗?或者只是坚持记录并处理变体"限制"会不那么复杂?我只是在学习,如果课程方法的爆炸可能让我更聪明,我会做的.我也只是调查TList过(从未使用它),但似乎它与记录混合得不是很好,也许它可以完成,但这可能不在我的联盟中.我愿意接受任何建议.我该怎么办?
在Java中,可以将可序列化对象保存到文件并从该文件加载对象.我们可以在Delphi中这样做吗?如果是,怎么样?
我需要将一些数据存储在一个文件中.每个记录(数据集)包括:
将所有这些东西保存在二进制文件中并不困难.但是,我确信(不幸的是)我的数据格式会随时间发生变化,我希望有可能为每个"记录"添加更多字段.所以,显然我的文件格式无法修复.我想最好的解决方案是将数据保存在(DB)表中,但我不想搞砸大枪(SQL,ADO,BDE,Nexus ......).我需要一个可以做到这一点的基础库(如果可能的话,单个PAS文件).由于这样做的目的是存储数据而不是处理数据,是否可以在没有DB表的情况下完成?
该库的要求:
我用的是D7