У меня есть база данных с ~ 50000 строк и 16 столбцов (по крайней мере пока). Когда кнопка нажата в основной форме приложения, программа выполняет некоторые вычисления, из которых вычисляется результат. Мне нужно поместить текущую запись таблицы в качестве вычисленного результата.Быстрое позиционирование в таблице базы данных
пример: у меня есть результат 35500. Мне нужно установить позицию на номер записи 35500 в таблице. Как я могу это сделать быстро? Я работаю с ADO (без SQL), и я попытался с инструкциями, как
table.First;
table.MoveBy(35500);
, но они очень медленно, для этого случая. Я также должен упомянуть, что позиционирование выполняется без какого-либо вывода в любом компоненте, таком как TDBGrid или что-то еще, поэтому он должен быть более быстрым способом.
Возможно, из-за того, что вы просите драйверы Microsoft ADO выполнять операции 35500 «перемещать следующую запись» один за другим. Если вам действительно нужны операции ISAM вместо SQL (но почему ???), возможно, вам повезло бы с некоторым движком Delphi (tdbf.sf.net, nexusDB или что-нибудь из Torry.net), где вы могли бы сделать что-то вроде 'DataSetObject.RecNo: = 12345;'? –
Использование ClientDataSet – FLICKER
@FLICKER: Фактически, при таблице, размер которой упоминается OP на сервере базы данных, ADO намного быстрее, чем TClientDataSet, особенно на этапе поиска. – MartynA