三层数据更新问题
问题:
CDS_EMPL:TCLientDataSet为取得员工列表数据集
其中:
ClientDataSet1.ProviderName := 'DataSetProvider_Common ';
CDS_EMPL.ProviderName := 'DataSetProvider_Common ';//
两个客户端数据集的提供者是一样的。
操作如下:
1、首先取得员工的列表
2、单击[增加按钮]增加一个员工。
3、依次输入员工的信息。
4、其中员工所属部门的信息是通过ClientDataSet1从数据库中取得。
5、保存。保存的代码是:CDS_EMPL.ApplyUpdates(0);
这个时候出现下面错误:
=====================
列名 'USER_ID ' 无效。
=====================
我如果直接输入部门的信息不会出现问题。
只要是选择就会出现上面的错误。(选择是从数据库中取得部门列表再从中选择的)
ApplyUpdates(0)这种方式更新数据,在取得数据到数据更新回数据库这期间clientdataSet的DataSetProvider不能为其他的的
clientdataSet使用。就搞不明白不是说远程数据模块是无状态对象吗?为什么取得数据后还要维护客户端的信息。