While creating a descendant of TDADataTableRules I noticed a (possible) bug in the code.
function TDADataTableRules.GetDetails(Index: integer): TDADataTable;
result := TDADataTable(fDetails[Index])
I think that converting a string (fDetails is a TStringList) into a TDADataTable needs a bit more magic
My guess is that result = TDADataTable(fDetails.Objects[Index]) would give a better result.
Using Delphi 10.2.2 - RODA 9.6.112