mORMot2 獲取數據集(泛型)
第14章 使用泛型
現代Delphi版本的一個特點是能夠使用泛型。
var
aMale: TSQLBaby;
Begin
aMale := TSQLBaby.CreateAndFillPrepare(Client, 'Name LIKE ? AND Sex = ?',['A\%',ord(sMale)]);
try
while aMale.FillOne do
DoSomethingWith(aMale);
finally
aMale.Free;
end;
end;
可以被替換爲
var
aList: TObjectList<TSQLBaby>;
aMale: TSQLBaby;
...
begin
aList := Client.RetrieveList<TSQLBaby>(’Name LIKE ? AND Sex = ?’,[’A\%’,ord(sMale)]);
try
for aMale in aList do
DoSomethingWith(aMale);
finally
aList.Free;
end;
end;
如果你覺得這個更吸引人,那麼你就有更多的選擇了。但有一個缺點,這個版本會一次性將所有數據下載到內存中。通常這不是問題,但如果你有一個非常大的數據集,你可能會耗盡內存。在服務器上,那將是致命的。