Delphi 将数据集与TclientDataSet嵌套在两个以上的级别?

Delphi 将数据集与TclientDataSet嵌套在两个以上的级别?,delphi,nested,tclientdataset,Delphi,Nested,Tclientdataset,我想知道是否可以在一个数据集中嵌套一个数据集,然后在另一个数据集中嵌套此数据集。三个层次的筑巢。目前,我只设法将一个数据集嵌套在另一个数据集中。当尝试嵌套第三层时,数据库在我第一次编译程序并能够输入数据时成功运行。然后,当我第二次尝试运行该程序时,我发现EDBClient引发了一个执行选项,消息为“datapacket中不匹配” 所以我想知道有没有可能在彼此之间嵌套3个级别的数据集 问候 Riaan简单的答案是肯定的,您可以有三个层次的数据集相互嵌套。我有一些clientdataset的例子,其

我想知道是否可以在一个数据集中嵌套一个数据集,然后在另一个数据集中嵌套此数据集。三个层次的筑巢。目前,我只设法将一个数据集嵌套在另一个数据集中。当尝试嵌套第三层时,数据库在我第一次编译程序并能够输入数据时成功运行。然后,当我第二次尝试运行该程序时,我发现EDBClient引发了一个执行选项,消息为“datapacket中不匹配”

所以我想知道有没有可能在彼此之间嵌套3个级别的数据集

问候
Riaan

简单的答案是肯定的,您可以有三个层次的数据集相互嵌套。我有一些clientdataset的例子,其中嵌套降低了6个级别。事实上,除了内存限制之外,我认为嵌套的深度没有限制。

短篇小说:

用Delphi XE试试看。。。对于我现在的主要项目,这解决了错误

说来话长:

当Delphi2010的数据库端出现任何错误时,我遇到了与3级或3级以上嵌套数据集相同的问题

我经常使用的上一个版本是Delphi2007,没有任何问题,因此这种不良行为有可能是在Delphi2009或Delphi2010中引入的

我将此问题追溯到客户端的midas.dll,无论您是否使用MidasLib静态链接midas,都会发生此问题。Midas“认为”它从服务器收到的数据包格式不正确,并引发异常。此异常会中断“正常”错误协调过程,因此无法尝试从错误中恢复:OnReconcienceError从未触发,并且由于VCL此部分中缺少try/except块,该过程被中止

我确信这是一个bug,但如果它发生在服务器端或客户端,就不会了。当我正在制作一个项目以提交支持票证时,在试图将其减少到尽可能小的程度时,碰巧Delphi XE发布了,我在SA下,所以我在最后一分钟得到了它

下载、安装、配置。。。然后,我编译了我的程序来支持这个项目,一切都很好。我编译了我的主要项目:在这个项目中,由于这一点,以及由于最后一秒的验证或状态/条件更改,我用来在数据库触发器和存储过程中引发异常的事实,我遇到了用户的实际问题。一切都很顺利。用户接收到有意义的错误消息,应用程序恢复了其动态执行数据转换和重试的能力,或者在某些情况下询问用户该做什么的能力

抱歉,我在诊断此问题并将其报告给Embarcadero的过程中没有找到解决方法,也许其他人可以帮助您更好地解决此问题,而无需建议升级