|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2018/11/6 21:50:31 |
标题: |
|
加入我的收藏 |
楼主: |
我在COM+组件中利用两个TAdoQuery构造了一个主从关系,并通过一个TDataSetProvider和一个TClientDataSet使用接口方法向客户端提供数据: 如: procedure GetMDData2(var VData: OleVariant); begin try CDSmaster.Active:=False; VData:=CDSmaster.Data; SetComplete; except SetAbort; end; end; 在客户端使用一个TClientDataSet和一个二级TClientDataSet(使用TDataSetField字段)接收数据,能够正确的运行. 如: begin ClientDataSet2.DataSetField:='Adoqry1';//使用了TDataSetField字段 ClientDataSet1.Data:=Fmts.GetData;//由COM+组件返回数据 end;
但是在更新时出现了问题: 用于更新的TDataSetProvider作了如下设置 ResolveToDataSet = True Options = [poFetchBlobsOnDemand, poCascadeDeletes, poCascadeUpdates, poAllowMultiRecordUpdates, poAllowCommandText, poRetainServerOrder] 更新用的接口方法如: procedure UpdateDataMD2(VData: OleVariant); begin try CDSmaster.Active:=True; CDSmaster.Data:=VData; CDSmaster.ApplyUpdates(-1); SetComplete; except SetAbort; end; end;
1.只能更新主表 2。从表总是不能被更新 3.当从表数据有修改等时,主表的更新不被存盘.
这个是网上的提问, 但网上并没有指出解决办法 我现在遇到相似的问题, 请高手指导一下
----------------------------------------------
- |
作者: |
|
2018/11/6 22:33:43 |
1楼: |
要设置根据关键字段更新。
----------------------------------------------
-
|
作者: |
|
2018/11/8 12:55:36 |
2楼: |
https://www.cnblogs.com/hnxxcxg/p/4136725.html 多表数据提交
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
|
|