1

我使用下一个链

TADOQuerry->TDataSetProvider->TClientDataSet

获取 Items 和 ItemType 表的数据并离线使用。项 TADOQuery 的 SQL 属性包含一个简单的查询

select i.ID,i.Name, i.TypeID, i.Qnty, i.Price, it.TypeName 
from Items i join ItemType it on (it.ID = i.TypeID)

ItemType 更简单:

select * from ItemType

现在 - 对于 cdsItems,我将 TypeName 字段修改为查找字段并将其链接到 cdsItemType - 没什么不寻常的 - 并将 cdsItems 绑定到网格。但是当我尝试通过在网格中使用组合框来修改数据时 - 它会引发错误“尝试修改只读字段”。

我设置为 TCliendDataSet ReanOnly:= false 的所有字段。此外,在我将数据输入 TClientDataSets 之后 - 使用 for - 我再次将所有字段设置为 ReadOnly:=False。但即便如此,我仍然得到“尝试修改只读字段”。

使用的数据库是 MS SQL Server 2005 Express 版本。

4

1 回答 1

2

成立!!!!

该错误位于 GetItems 查询(ADOQuery 类型)的 TypeID 列的类型中 - 当我将所有字段加载到其中时 - 添加为 TAutoIncField 的 TypeID - 当我将其更改为 TIntegerField 时 - 一切顺利。

于 2012-05-13T17:11:56.573 回答