mORMot2 获取数据集(泛型)
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;
如果你觉得这个更吸引人,那么你就有更多的选择了。但有一个缺点,这个版本会一次性将所有数据下载到内存中。通常这不是问题,但如果你有一个非常大的数据集,你可能会耗尽内存。在服务器上,那将是致命的。