我使用下一个链
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 版本。