ClientDataset 三层 var and out arguments must match parameter

​​​将Delphi升级到10.1.2后,从客户端传ClientDataset的Delta数据到服务端程序时,出现var and out arguments must match parameter错误。后来查了服务端程序的相应函数:

UpdateDelta(const vDelta: OleVariant;strTableName,strKeyFieldName,strFieldList:String): String;

该函数的定义与客户服生成的接口文件ServerMethods.pas​中的函数

function TSMSMClient.UpdateDelta(vDelta: OleVariant; strTableName: string; strKeyFieldName: string; strFieldList: string): string; 的定义存在不一致导致的。该问题在之前版本的Delphi中不会产生问题。将服务端程序该函数的定义修改成如下:

UpdateDelta(vDelta: OleVariant;strTableName,strKeyFieldName,strFieldList:String): String; 

重新编译后,问题解决

原文地址:https://www.cnblogs.com/hjsofware/p/10097121.html