我尝试将我的项目从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添加到了我的项目中(这可能不是正确的方法)。