在运行时在Dataset - provider - clientdatatset中创建readwrite字段

时间:2013-09-03 13:04:28

标签: delphi

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

的行上有一个带有SQL的TADOQuery
SELECT *,CAST(0 AS BIT) AS CheckField FROM MyTable WHERE KeyField = :KeyValue

这通过TDatasetProvider链接到TClientDatset。

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

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

1 个答案:

答案 0 :(得分:0)

问题是CAST()

数据集不会分析基础字段可能是CAST的内容;它只知道它是一个放在列中的函数结果,你不能编辑函数结果。

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

相关问题