2016-05-19 4 views
2

Я пытался передача моего проекта от X Е8 до XE10.1Delphi XE10.1 DataSnap Ошибка клиента "SetConnectTimeOut"

Модуля DataSnap Client имеет SQLConnection1: TSQLConnection

Когда я установить свойство Driver.ConnectTimeout любого значение, то установить Connected=true, я получаю сообщение об ошибке:

"SetConnectTimeout"

Без значения в Driver.ConnectTimeout установочного порядок.

Какая у меня ошибка?

ответ

1

Вы ничего не делаете неправильно. Эмбаркадеро.

В Delphi 10 Сиэтл (я не имею X Е8), реализация метода Data.DbxHTTPLayer.TDSHTTPNativeClient.SetConnectTimeout является:

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

В Delphi 10.1 Берлин, тот же метод выглядит следующим образом:

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 в свой проект (возможно, это был неправильный способ сделать это).

+0

Зачем Эмбаркадеро это делать? – nolaspeaker

+0

Между 10 и 10.1 они изменили базовую библиотеку HTTP. Я предполагаю, что они хотели вернуться к этому и забыть. – Pat

+0

Заслуживает внимания как проблема качества портала. – nolaspeaker

Смежные вопросы