我尝试将我的项目从XE8转移到XE10.1

DataSnap客户端模块具有SQLConnection1:TSQLConnection

当我将属性Driver.ConnectTimeout设置为任何值,然后设置Connected=true时,出现错误:


“ SetConnectTimeout”


Driver.ConnectTimeout中没有任何值,则设置连接正常。

我怎么了

最佳答案

您没有做错任何事。恩巴卡德罗做到了。

在Delphi 10 Seattle(我没有XE8)中,Data.DbxHTTPLayer.TDSHTTPNativeClient.SetConnectTimeout方法的实现是:

procedure TDSHTTPNativeClient.SetConnectTimeout(AMilisec: Integer);
begin
  FHTTP.ConnectTimeout := AMilisec;
end;


在Delphi 10.1 Berlin中,相同的方法如下所示:

procedure TDSHTTPNativeClient.SetConnectTimeout(AMilisec: Integer);
begin

  raise ENotImplemented.Create('SetConnectTimeout');
end;


我将源(Data.DbxHTTPLayer.pas)编辑为:

procedure TDSHTTPNativeClient.SetConnectTimeout(AMilisec: Integer);
begin
  FHTTPClient.ConnectionTimeout := AMilisec;
  //raise ENotImplemented.Create('SetConnectTimeout');
end;


它解决了问题。最初的.dcu和.o最初阻止将更改实际链接到我的应用程序,因此我将Data.DbxHTTPLayer.pas添加到了我的项目中(这可能不是正确的方法)。

10-02 19:09