用socketconnection的Dispatch调用方式的问题(50分)

A

ahai227

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下,原来用updateAll:=coupdate.CreateRemote(svr)的方法成功过。执行到updateAll.allUpdate(...)就报错:Accessviolation at address
不知是何原因,请各位帮帮忙!谢谢!!
var
updateAll:IupdateDisp;

begin
updateAll:=IupdateDisp(Idispatch(SocketConnection1.AppServer));
updateAll.allUpdate(CDSxh.Delta,0,iErrorCount,XHstring,SLstring,ggsl,updataz);
end;
 
请给为说说自己的做法。谢谢!!急啊~~~~~
 
是不是我的做法有问题?怎么都没有人理我一下!伤心啊~~~~
 
我也碰到过类似的,不过忘了什么原因,反正不会难,自已再仔细检查一下吧!
 
to arong2008:
你帮我看看吧!!
谢谢
 
改成
SocketConnection1.Connected := True;
updateAll:=IupdateDisp(Idispatch(SocketConnection1.AppServer));
updateAll.allUpdate(CDSxh.Delta,0,iErrorCount,XHstring,SLstring,ggsl,updataz);
 
访问了无效的内存区块。我查这个错查了很久。内存没有释放完造成的。
 
您把完整的单元代码美贴出来。
 
to szf :
你的方法不行啊!!再帮帮忙。
 
IupdateDisp = dispinterface
['{3078FB3B-0F31-45F8-91D0-1CDED09FC236}']
procedure allUpdate(vDates: OleVariant;
iMaxError: Integer;
var iErrorCount: Integer;
XHstring: OleVariant;
SLstring: OleVariant;
ggsl: Integer;
ddUpSqlSting: OleVariant);
dispid 1;
 
谢谢各位帮忙!!!
 
问题解决了。
是szf给了我提示。
不过,还是要谢谢各位的帮忙!!
 
接受答案了.
 
顶部