Это выходит за рамки моей компетенции, но я думаю, что эквивалентной функциональностью за пределами ADO было бы извлечение набора данных в массив с последующим использованием стандартных методов навигации по массиву, а не функциональность, специфичная для API базы данных.
Если вы имеете дело с наборами данных, которые достаточно велики, чтобы вы не хотели загружать все за один раз, вам следует попытаться найти способ сузить набор результатов в запросе, прежде чем начинать навигацию по результатам. Например, если вы обнаружите, что загружаете набор результатов, а затем переходите к последней строке, достаточно просто сделать так, чтобы запрос просто возвращал последнюю строку в первую очередь. Если вы обнаружите, что получаете набор результатов, а затем просматриваете его (или фильтруете) для определенной строки (или набора строк), я думаю, вы обнаружите, что если позволить Oracle сделать это за вас, производительность будет значительно выше.
Причина, по которой вам нужно использовать массивы для выполнения такого рода навигации с Oracle, заключается в том, что курсоры Oracle всегда работают только вперед (тогда как с ADO у вас также есть динамические курсоры, курсоры с набором ключей и статические курсоры). Если вам действительно нужно иметь возможность перемещаться по всему большому набору результатов, загрузка всего этого в массив - ваш единственный выбор.
person
Allan
schedule
15.07.2010