Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL Server: забирать результат запроса проциями  [new]
seperblunt
Member

Откуда:
Сообщений: 11
Всем добрый день!

Такая задачка для MS SQL Server: мне нужно выполнить запрос, но забирать результат порциями, при этом между вызовами процедуры "Взять_Очередную_Порцию" нет возможности сохранять на клиенте RecordSet.

Т.е. мне нужно при первом обращении с клиента выполнить запрос и вернуть адрес RecordSet
При последующих запросах с клиента я буду передавать этот адрес и получать следующую порцию данных.

Возможно ли такое?

Модератор: Тема перенесена из форума "MySQL".
9 июл 19, 18:20    [21923700]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server: забирать результат запроса проциями  [new]
L_argo
Member

Откуда:
Сообщений: 810
Можно сохранить рекордсет во времянку и доставать оттуда порциями.
Но будет нужен четкий критерий порции: н-р, интервал значений.
10 июл 19, 09:02    [21923934]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server: забирать результат запроса проциями  [new]
uaggster
Member

Откуда:
Сообщений: 620
Основная проблема в том, что значение выборки может измениться между извлечениями порций данных.
Если этим можно пренебречь, то можно воспользоваться инструкцией FETCH - OFFSET, начиная с 2012 сервера, см. пример:
  SELECT * FROM TestTable
   ORDER BY ProductId
   OFFSET 3 ROWS FETCH NEXT 3 ROWS ONLY

Последовательно вызывая, соответственно с разными значениями OFFSET.

Однако, если выборка быстро меняется - на выходе получите лажу.
Поэтому ее сначала придется материализовать в таблицу, а потом - отдавать. Причем, если у вас соединение между запросами с клиента - не существует, материализовать придется даже не во временную таблицу.
10 июл 19, 09:53    [21923968]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server: забирать результат запроса проциями  [new]
seperblunt
Member

Откуда:
Сообщений: 11
uaggster,
Спасибо! то что надо. У меня таблицы сугубо статичны,е так что ваш метод подходит.
10 июл 19, 17:25    [21924329]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить