Теоретический вопрос о функции Locate
Michael Longneck
Дата: 29.04.2011 16:43:28
Должна ли эта функция находить первую по порядку индекса запись либо же она может искать какую-то соответствующую запись. Dataset индексирован.
Anatoly Podgoretsky
Дата: 29.04.2011 16:49:53
Ей все равно как и где искать, если есть возможность использовать индекс, она его использует, если нет, то последовательный поиск.
schi
Дата: 29.04.2011 16:51:48
Michael Longneck,
У сферического датасета в вакууме Locate должна находить первую запись, список значений полей у которой удовлетворяет заданным значениям. Так как Locate виртуальный метод, то как конкретные наследники реализуют, так и будет, по индексу, обратным перебором, и т.п.
Michael Longneck
Дата: 29.04.2011 16:53:31
Ввиду того, что я сам пишу её реализацию для TTable - аналога, то я бы хотел узнать именно на поставленный вопрос ответ.
DimaBr
Дата: 29.04.2011 16:56:13
Как напишите поиск, так и будет
Michael Longneck
Дата: 29.04.2011 16:58:14
ОК, тогда переформулируем вопрос - у BDE всегда ищется первая запись? Потому что гора кода расчитана на определённое поведение, а я с BDE не имел дела всерьёз ... никогда.
schi
Дата: 29.04.2011 17:02:17
Michael Longneck |
---|
ОК, тогда переформулируем вопрос - у BDE всегда ищется первая запись? Потому что гора кода расчитана на определённое поведение, а я с BDE не имел дела всерьёз ... никогда. |
RTFS: DBTables.pas,
function TBDEDataSet.LocateRecord(const KeyFields: string;
const KeyValues: Variant; Options: TLocateOptions;
SyncCursor: Boolean): Boolean;
Michael Longneck
Дата: 29.04.2011 17:06:52
Сей файл я крайне внимательно читал. Однако
DbiGetRecordForKey никак не объясняет как она ищет. При поиске фильтром яснее, там точно первая запись.
Гаджимурадов Рустам
Дата: 29.04.2011 17:09:58
По сабжу: да, первую, да, инлексирует. Но я бы сделал это
опциональным, ибо велик шанс, что в будущем понадобится.
schi |
---|
RTFS: DBTables.pas,
function TBDEDataSet.LocateRecord |
Интересно, что это ему даст... Сами бы хоть попробовали...
Anatoly Podgoretsky
Дата: 29.04.2011 19:13:40
Michael Longneck |
---|
ОК, тогда переформулируем вопрос - у BDE всегда ищется первая запись? Потому что гора кода расчитана на определённое поведение, а я с BDE не имел дела всерьёз ... никогда. |
Locate не имеет отношения к БДЕ