我尝试将我的项目从XE8转移到XE10.1
DataSnap客户端模块具有SQLConnection1:TSQLConnection
当我将属性Driver.ConnectTimeout
设置为任何值,然后设置Connected=true
时,我收到错误:
“SetConnectTimeout”
在Driver.ConnectTimeout
中没有任何值设置连接就可以了。
我的错误是什么?
答案 0 :(得分:1)
你没有做错任何事。 Embarcadero做了。
在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添加到我的项目中(这可能不是正确的方法)。