SDAC driver timeout setting

hi, we still have an own Sdac driver version which handles the connection timeout (set it to -1)
my question is if the stock DA Sdac driver still has a 2 second connection timeout or not?
if so, how to handle the setting of the connection timeout in a way that i don’t have to maintain a derived version of the stock DA Sdac driver…

Unfortunately no, there are no changes regarding this. I’ll log an issue to expose this option via connection string.

Thanks, logged as bugs://84988

this is my unit now:

unit uDAMySDACDriver;

interface

uses
Data.DB,
uDAADODriver, uDAEConnection, uDAInterfaces, uDASDACDriver, uDAServerInterfaces,
MSAccess;

type
TDAMyESDACDriver = class(TDAESDACDriver)
protected
function GetConnectionClass: TDAEConnectionClass; override;
end;

TDAMyESDACConnection = class(TDAESDACConnection)
protected
function CreateCustomConnection: TCustomConnection; override;
end;

function GetDriverObject: IDADriver; stdcall;

implementation

uses
System.SysUtils,
uDADriverManager;

var
_driver: TDAEDriver = nil;

function GetDriverObject: IDADriver;
begin
if (_driver = nil) then _driver := TDAMyESDACDriver.Create(nil);
result := _driver;
end;

function TDAMyESDACDriver.GetConnectionClass: TDAEConnectionClass;
begin
result := TDAMyESDACConnection;
end;

function TDAMyESDACConnection.CreateCustomConnection: TCustomConnection;
var conn:TMSConnection;
begin
result := inherited CreateCustomConnection;
conn := result as TMSConnection;
conn.Options.DefaultLockTimeout := -1;
end;

initialization
_driver := nil;
UnregisterDriverProc(uDASDACDriver.GetDriverObject);
RegisterDriverProc(GetDriverObject);

finalization
UnregisterDriverProc(GetDriverObject);
FreeAndNIL(_driver);

end.

This is not connection timeout, this is an additional connection parameter related to transaction lock management.

Options.DefaultLockTimeout can be managed via connection string in the current SDAC drivers. Just add ‘Options.DefaultLockTimeout=-1’ to the connection string. Other TMSConnectionOptions can be set in the similar manner too.

hi Anton, we have had this discussion before (which i don’t seem to find here), setting this in the connection string did not work… unless this has been changed in one of the latest roda releases?

Commit with this feature has been made mid-Sommer 2019

yes just looked in the source, i guess this will do the trick
else if Pos(‘options.’, lcName) = 1 then begin
sName := Copy(sName,9, Length(sName)-8);
SetPropValue(fMSConnection.Options, sName, sValue);