Как долго существуют методы поиска и локализации TDataset?

Я работаю над модернизацией и исправлением ошибок в кодовой базе Delphi 4-era программы, написанной кем-то другим. Много кода по современным стандартам немного пугает, и я не могу не задаться вопросом, есть ли там что-то из того, что я вижу, потому что автор оригинала не знал о некоторых возможностях стандартной библиотеки, или они были недоступны.

Один из более отвратительных "шаблонов", которые я вижу по всему приложению, выглядит следующим образом:

table := TClientDataset.Create;
with table do
begin
  CloneCursor(dmDatabase.OriginalTable, false, true);
  filtered := true;
  active := true;
  first;
  while not EOF do
  begin
    if fieldByName('whatever').AsString = 'some criteria' then break;
    next;
  end;
  if EOF then exit;
  //do something based on the current row of the dataset
  table.free;
end;

Почти каждая из этих групп может быть заменена однострочным вызовом либо Lookup , либо Locate в оригинальном наборе данных, без необходимости использования промежуточных CDS вообще. Это заставляет меня задуматься, были ли эти методы доступны еще в дни D4? Когда Lookup и Locate были впервые добавлены?

5
задан Mason Wheeler 27 July 2011 в 19:04
поделиться