![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Есть ли какая-нибудь вожможность заставить ADO вытягивать данные порциями, например вытягивать по десять записей из select * from table в которой несколько тысяч записей, не используюя условия where?
Например PL/SQL Developer (тоже написанный на дельфи) так умеет делать. Последний раз редактировалось M.A.D.M.A.N., 17.08.2012 в 08:45. |
|
#2
|
||||
|
||||
|
Не знаю как в PL, а в T-SQL есть конструкция вида SELECT TOP 30 ..... выбирает первые тридцать записей (так же можно указывать и в процентах)
|
|
#3
|
||||
|
||||
|
Последний раз редактировалось Yurk@, 17.08.2012 в 15:36. |
|
#4
|
||||
|
||||
|
Не выбрать определенный интервал, а фетчить частями.
|
|
#5
|
||||
|
||||
|
Вот. Разобрался.
Эти свойства. Код:
FADOQuery.CacheSize := 5;
FADOQuery.ExecuteOptions := [eoAsyncFetch, eoAsyncFetchNonBlocking]; |
|
#6
|
||||
|
||||
|
А датасет, сволочь, читает только в блокирующем режиме и вычитывает все.
|
|
#7
|
||||
|
||||
|
Так асинхронный запрос все равно выполнится от начала до конца (если его не прервать).
|
|
#8
|
||||
|
||||
|
Ну это по сути то, что и требовалось, получить доступ сразу хотя бы к части данных, не дожидаясь завершения полного вычитывания.
|