2

我正在尝试在 Delphi 中创建一个在运行时不是 ReadOnly 的附加字段。我有一个带有 SQL 的 TADOQuery

SELECT *,CAST(0 AS BIT) AS CheckField FROM MyTable WHERE KeyField = :KeyValue

这通过 TDatasetProvider 链接到 TClientDatset。

我的问题是 TClientDataset 中的结果字段最终为只读。TClientDataset 在设计时创建以链接到网格等。其他组件在运行时在单独的对象中创建。

我有一个类似的设置工作,但一切都是在设计时创建的。我通过在 TADOQuery 组件上创建持久字段并在打开 TClientDatset 之前将 CheckField 的 ReadOnly 属性设置为 False 来解决此问题。我不确定如何在运行时执行此操作,因为在我打开 ClientDatset 之前字段组件不存在,到那时设置它的只读属性为时已晚!

4

1 回答 1

0

问题是CAST().

数据集不分析底层字段可能是什么CAST;它只知道它是放入列中的函数结果,您无法编辑函数结果。

您可以SELECT *, 0 AS CheckField, 然后在结果字段上设置验证以将值限制为01

于 2013-09-03T14:11:49.917 回答