Ich wollte gerade mein aktuelles Projekt testhalber auf 10.1 hochziehen. Dieses verwendet eine Datasnap-Verbindung über HTTP. Leider kommt diese nicht zustande, sondern bricht mit einer ENotImplemented-
Exception ab. Nach langem Debuggen konnte ich auch die Ursache ermitteln: in der
Unit Data.DBXHTTPLayer besitzt die Klasse TDBXHTTPLayer eine private Property vom Typ TDSHTTPClient. Innerhalb der Open-Methode von TDBXHTTPLayer werden Timeout-Werte für diese Property gesetzt. OK, der Setter ist recht unspektakulär:
Zitat:
Delphi-Quellcode:
procedure TDSHTTPClient.SetConnectTimeout(AMilisec: Integer);
begin
// do nothing here
end;
Leider handelt es sich aber faktisch um eine Ableitung davon, nämlich TDSHTTPNativeClient (per ClassFactory instanziert, soweit ich sehen konnte). Hier ist der Setter überschrieben:
Zitat:
Delphi-Quellcode:
procedure TDSHTTPNativeClient.SetConnectTimeout(AMilisec: Integer);
begin
raise ENotImplemented.Create('SetConnectTimeout');
end;
Für mich heißt das also: Originalunit ins Projektverzeichnis kopieren, dem Projekt hinzufügen und die Exceptions auskommentieren, oder kennt jemand noch einen anderen Weg? Try-Except dürfte nicht helfen, da dieser Block ja viel zu weit "außen" wäre, oder?