中间层的ApplyUpdates无法执行,客户端ApplyUpdate(0)可以,COM+下到底是什么原因! ( 积分: 100 )

  • 主题发起人 主题发起人 dv11
  • 开始时间 开始时间
D

dv11

Unregistered / Unconfirmed
GUEST, unregistred user!
客户端的CdsProduct.applyupdate(0)可以更新,
但是在中间层定义方法:
procedure TSvrSale.SaveAll(ClientID: Integer;
Master:OleVariant;
const SQLStr: WideString);
var ErrorCount:integer;
begin
dspProduct.ApplyUpdates(Master,0,ErrorCount,SQLStr);
end;

客户端调用SVR.APPSER.SAVEALL(id,CdsProduct.Delta,getstr);报错,invaid argument
(重点要提的是dspProduct的SQL是动态生成的,是在BeforeApplyUpdates中得到的,
在CdsProduct的BeforeApplyUpdates的中处理向dspProduct传SQL!)
 
你只会问不会想,你看错误提示"invaid argument"就知道你的参数有问提,说是无效的参数!自己好好检查吧!
 
PROJECT DLLHOST.EXE RAISED EXCEPTION CLASS EVARIANTINVALIDARGERROR WITH MESSAGE 'INVALID ARGUMENT'PROCESS STOPPED .USE STEP OR RUN TO CONTINUE
起用调试,但是不执行断点,调试方式肯定没有问题,
在客户端CdsProduct.Data:=CdsProduct.Delta;
CdsProduct.savetofile('1.xml');发现DELTA的内容也没有问题,奇怪了!
 
生成的SQL有问题
 

Similar threads

后退
顶部