我尝试将我的项目从 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 添加到我的项目中(这可能不是正确的方法)。
关于Delphi XE10.1 DataSnap客户端错误 "SetConnectTimeOut",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37323810/