问题标签 [tclientdataset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
467 浏览

delphi - TClientDataSet 的当前焦点字段

我有一种情况,我必须允许用户更新dbgrid(连接到 CDS)的2 个字段中的任何一个,以保留最后输入的字段。所以(在用户输入数据后)我需要获取当前的焦点控件,这样我将删除以前的字段数据(如果有的话)。除了这两个之外,我还有其他领域。

坚持不使用任何与网格相关的事件,我必须只使用 CDS 事件来实现这一点。

在此先感谢,维杰。

0 投票
1 回答
1850 浏览

c# - 如何使用 .Net 读取 .cds 数据库 (TClientDataSet)

我有一个用 Delphi 编写的应用程序的旧数据库文件。我的任务是提取数据,并将其移动到 SQL 数据库。我知道它是使用 Delphi 的 TClientDataSet-Class 的 .cds 格式。问题是:我没有 Delphi,没有文档,而且编写该应用程序的人几年前离开了公司。所以,我的问题是:有没有办法(除了 Delphi 或文本解析)使用 Dot.net、Python、Ruby、Java 或 Perl 访问数据?一个简单的“导出”到 XML 或 CSV 也可以。

0 投票
1 回答
1631 浏览

delphi - TClientDataSet 出现错误消息

这里有一个小情况,我直到最近才使用 TClientDataSet(它需要 midas.dll)所以现在我面临一个非常尴尬的错误,不是很具描述性:

调试器故障通知

项目 E:\Work\XXX\binary\XXX.exe 出现错误消息:“0x00678827 处的访问冲突:写入地址 0x00030a38”。进程停止。使用 Step 或 Run 继续。

每当我尝试设置 clientdataset 中字段的值(我将其用作内存数据集)时,都会发生这种情况:

两个字段都是 TStringField,cdsTestAField 的大小为 64,ATableField 的大小为 32

注意:我先调用 CreateDataSet 方法,这也只发生在字符串字段中,任何帮助将不胜感激。

感谢您的时间。

0 投票
3 回答
28015 浏览

delphi - 错误:文件名目录名或卷标语法不正确,在 Delphi 7 CopyFile 函数中

我想使用 CopyFile 功能将文件从一个文件夹复制到另一个文件夹。源文件路径存储在名为“itemsDB”的 ClientDataSet 中。代码是:

当我执行代码时,我收到错误消息“文件名目录名称或卷标语法不正确”。我验证了数据集中的所有文件路径,它们是正确的。在我的示例中,我的客户端数据集包含两个 JPG 图像“c:\test1.jpg”和“c:\test2.jpg”当我尝试 source := 'c:\test1.jpg' 时,它工作得很好,但是当我得到它来自客户端数据集,它失败了。

提前致谢

0 投票
5 回答
41837 浏览

database - 如何在运行时向客户端数据集添加字段?

我有一个TClientDataSet,它由 aTTable的数据集提供。数据集有两个字段:邮政编码(字符串,5)和街道(字符串,20)

在运行时,我想显示第三个字段(字符串,20)。该字段的例程是获取邮政编码作为参数,并返回属于该邮政编码的城市。

问题只是将计算字段添加到已经存在的字段。填充数据本身不是问题。

我试过:

cds 是我的clientdataset,Table1是一个悖论表,但问题与其他数据库相同。

提前致谢

0 投票
1 回答
710 浏览

delphi - Delphi 与 Intraweb 8 - TIWDBLookupComboBox - 主细节

我正在使用 IW 8 和 Delphi 7 构建应用程序。应用程序是 3 层的。
1)在应用程序的数据模块上,我有几个 TClientDatasets 和 TDataSources 关联(在主从关系上设置)
2)在 IW 表单上,我有几个 TIWDBLookupComboBoxes 数据集指向数据模块数据源。

我面临的问题:当我从 TIWDBLookupComboBoxes 中选择一个值时,数据集没有反应(我正在更改主数据集的索引,因此详细数据集也应该更改)。所以我将客户端数据集保存为 xml 文件并将数据导入到 win32 应用程序中,以相同的方式设置所有主详细信息,瞧——一切正常。

所以我的问题是:TIWDBLookupComboBoxes 似乎没有移动数据集的内部光标?如果是这样,在 TIWDBLookupComboBoxes 的 OnChange 事件上,如果我将 recno 设置为我想要的我会遇到表单渲染问题?

我该如何解决这个问题?

0 投票
3 回答
1604 浏览

.net - 使用 .NET 读取 Delphi TClientDataset 文件

我需要使用 .NET 代码阅读使用 Delphi 的 TClientDataset 类编写的文件。这里提到的解决方案对我不起作用。

0 投票
3 回答
3914 浏览

delphi - Delphi - ClientDataSet - 验证数据

我在 Delphi 7 中有一个使用客户端数据集的应用程序,并对其进行了多项操作。ClientDataSet 链接到 Intraweb 网格。

我在 ClientDataSet 上进行插入或编辑。如何验证每个字段的 clientdataset 中引入的数据?我无法验证用户在 Web 表单上的输入,因此我必须使用 ClientDataSet 事件进行验证。

LE:我想在用户输入时验证数据。不在 onbeforepost 活动中。所以,我把客户端数据集放在编辑/插入中。用户在网格中进行输入,我想验证 clientdataset 中该行的数据,如下图所示:

在此处输入图像描述

第一列是字符串,第二列是整数,第三列也是整数。现在,我想在用户输入后验证第三列。必须通过使用客户端数据集事件/黑客来完成此验证(如果可能的话)。

0 投票
3 回答
8337 浏览

delphi - 如何手动执行“OnCalcFields”事件?

假设我暂时想在 TClientDataSet 上的耗时操作期间禁用OnCalcFields事件(例如,通过设置)。cdsCalcFields := nil当我重新附加该方法时,如何告诉 TClientDataSet 执行计算字段的重新计算OnCalcFields

另一种可能需要手动重新计算的情况是某些计算字段依赖于其他数据集的情况(例如,计算字段用于临时保存来自其他数据集的某些聚合值)。这在大多数情况下都可以正常工作,因为OnCalcFields事件的执行频率足以从其他数据集中获取正确的值。但在某些情况下,需要重新计算才能从其他数据集中获得正确的值。

AutoCalcFields属性设置为False也可能会使您陷入需要手动重新计算的某些情况。

我已经看到了一些关于如何减少OnCalcFields事件执行的解释,但我找不到一个简单的方法来执行重新计算......

有什么建议么?

0 投票
1 回答
1365 浏览

delphi - Delphi:应用更新时访问嵌套数据集主信息

在将更新应用到嵌套数据集时,如果提供者可以访问父数据集信息(如MyField.NewValue)吗?BeforeUpdateRecord

原因:

当我对具有嵌套详细信息的 CDS 应用更新时,主 PK 由基础查询 ( TIBCQuery) 生成并传播到主 CDS。

但是新键在详细信息中不可见,BeforeUpdateRecord因为该字段在 中更新AfterUpdateRecord

并且增量尚未合并。

DeltaDS当调用细节时,事件的参数似乎BeforeUpdateRecord只包含嵌套数据集的信息。

如果我能做这样的事情会很好:

编辑:

使用嵌套数据集时,该BeforeUpdateRecord事件被调用两次,一次用于主数据,一次用于细节(如果我们对两者都有一个记录)。当为细节调用事件时,有没有办法访问包含在 中的主信息DeltaDS

由于更改尚未合并,我们此时无法访问主 CDS 的数据。我希望这不会增加更多的混乱。