Я написал, как я надеялся, полезную функцию, позволяющую избежать постоянного доступа к базе данных для поиска значения на основе ключа: создайте TDictionary в одном большом чтении, а затем используйте его.
Но мой хороший код не скомпилируется:
function TBankImportCols.CreateDictionary<TKey, TValue>(const sql: string): TDictionary<TKey, TValue>;
var qry: TDataset;
begin
result := TDictionary<TKey, TValue>.Create;
qry := DM.CreateQry(sql);
while not qry.Eof do begin
result.Add(qry.Fields[0].Value, qry.Fields[1].Value);
qry.Next;
end;
qry.Free;
end;
Я получил 2 ошибки: [dcc32 Error] uBankData.pas (519): E2010 Несовместимые типы: 'TKey' и 'Variant'[dcc32 Error] uBankData.pas (519): E2010 Несовместимые типы:' TValue 'и' Variant '
Используется Берлин 10.1.Кажется, что компилятор должен быть в состоянии разобраться с этим.Здесь я что-то не так делаю?
TIA Mark