问题标签 [tdxmemdata]

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 投票
3 回答
3504 浏览

delphi - 根据过滤器字符串检查 TDataSet 行

我在内存 TDataSet 后代中使用DevExpress TdxMemData 。虽然它具有 Filtered: Boolean 和 Filter: String 属性,但实际上并没有自动对它们执行任何操作,而是依赖于 OnFilterRecord 事件的 Accept 参数的结果。

所以我正在寻找的是一种解析过滤器文本并将其应用于数据集的方法(可能在 TdxMemData 或 DevExpress 代码套件中的其他地方)。

理想情况下,我想要一种针对过滤器测试单个行的方法,以查看它是否匹配而不将其从数据集中过滤出来(我想突出显示与过滤器匹配的行)。

示例过滤器字符串:

所以有嵌套的and's and or's。它实际上是由 DevExpress TcxDBFilterControl 构建的。

我真的希望我缺少一些简单的东西。

更新:我向DevExpress 开了一张票,看看他们是否支持任何类型的解决方案。我确实找到了他们不支持在 TdxMemData 上过滤的答案。

0 投票
2 回答
2385 浏览

c++ - 如何在 Borland Builder 中将数据插入 TdxMemData

我正在努力将数据插入到通过 TDataSourse 链接到网格的 TdxMemData 中。MemData - 称为 PurchaseData- 有 3 列:Date(日期)、Place(字符串)和 Value(货币)。我有一个执行以下操作的按钮:

单击一次,它会正常插入一行,数据出现在网格的新行中,但是当再次单击按钮时,我在 Insert() 上弹出一个窗口,说“无法将类型的变体 (Null) 转换为类型 (String )”。

我担心列的属性“KeyFields”在其组合中显示除其他 3 个字段之外的字段“RecId”。我不记得创建任何名为 RecId 的列,如果我这样做了,我将其删除。我不知道它是什么,也找不到帮助。

0 投票
0 回答
570 浏览

delphi - 如何在 memdata 字段中保留抽象数据类型?

是否有任何字段类型可以保存 TObject 或任何用户定义类的指针?如何在 memdata 中保存我的自定义类的实例?

谢谢。

0 投票
1 回答
1476 浏览

delphi - 使用 Ordered Sql 语句填充内存数据集 (TdxMemData) 时出现意外结果

我有一个数据集(TADODataset),它馈送到分配给数据源(TDataSource)的内存数据集(TdxMemData)。当我运行程序并且 SQL 没有按任何顺序排序时,返回的三个记录显示在 3 个单独的报告页面 (ReportBuilder) 上。但是,当我按字段排序时,报告的前两条记录被附加在一起,只有最后一条记录正确显示。

这是神秘的,信息量不是很大,但我想看看我是否遗漏了一些简单的东西。代码不应该产生不同的结果,因为我订购了 SQL,但它确实如此。它让我相信我错过了该组件的设置。有谁知道排序 SQL 数据集可能导致的任何问题以及它与内存数据集交互的方式?我对使用这些组件类型非常陌生,我只是在寻找比我更有经验的人来让我知道我应该把它带到哪里。任何帮助将不胜感激,如果有任何不清楚的地方,我会尽力澄清。提前致谢。

2013 年 8 月 14 日更新:

SQL 语句(在 Order By 之前):

SQL 语句(添加 Order By 后):

0 投票
1 回答
597 浏览

delphi - 不兼容的类型:widestring 和 tintegerfield

有谁知道这是怎么回事?

我已将所有数据库对象声明为整数,并将我的数据集对象声明为整数

当我运行我的 ado 查询时,我从这里获取值,我试图将它分配给一个数据集,该数据集也被声明为整数。但它一直给我

不兼容的类型:widestring 和 tintegerfield

这是确切的代码:

0 投票
1 回答
188 浏览

delphi - 如何将多个 TcxDBTextEdit 与存储在单个 DB 字段中的格式化数据一起使用?

我需要在单个数据库字段中存储两个值(是的,我同意这是不好的做法,但这是一个无法更改的遗留数据库)。数据存储为string1#4string2.

需要使用两个单独的TcxDBTextEdit控件来编辑数据。但是如何将它们连接到单个数据库字段,以便我可以string1在一个和string2另一个中进行编辑?

我尝试向 中添加两个计算 ( fkCalculated) 字段,在/TADOQuery中提取/加入它们的值并读取/写入,但它没有用。OnGetTextOnSetTextTStringField

所以我尝试创建一个TdxMemData包含两个字段的组件并使用它们而不是计算字段,但它仍然不起作用。

我怎样才能做到这一点(不改变数据库结构)?

0 投票
0 回答
220 浏览

delphi - 如果 JSON-array 为空,则 TRESTResponseDataSetAdapter 向数据集添加一行

如果我有一个TRESTResponseDataSetAdapterwithRootElement = 'testdata'并为它提供以下 JSON,它会向连接的数据集添加一行。

如果我在数组中提供一些数据,我会在数据集中得到预期的行,但如果数组是空的,我会得到一个看起来全是空值的行。

似乎获得空数据集的唯一方法是提供一些无效的东西,{"testdata":[,]}例如。这给了我一个空数据集而不会产生任何错误。

这是预期的行为吗?如果不是,这里可能是什么问题?我尝试过更改,TypesMode但无论使用哪种设置,我都会得到相同的结果。

我使用的数据集是TdxMemData来自DevExpress. 我最近从 Delphi 10.2 升级到了 Delphi 10.4。在 10.2 上一切正常(即如果 JSON 数组为空,则数据集也将为空),因此在 10.3 或 10.4 中似乎发生了一些变化。