Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Paged data retrieving в гриде / 3 сообщений из 3, страница 1 из 1
23.07.2008, 17:30
    #35447905
Дмитрий Исаев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Paged data retrieving в гриде
Есть VSFlexGrid на VB6, хочется, чтобы при открытии рекордсета он не всю таблицу тащил с SQL-сервера, а только то, что (грубо говоря) помещается на экране, типа как Аксесс (если это MDB) дёргает по 10 записей:

Профайлерdeclare @P1 int
set @P1=1
exec sp_prepexec @P1 output, N'@P1 int,@P2 int,@P3 int,@P4 int,@P5 int,@P6 int,@P7 int,@P8 int,@P9 int,@P10 int', N'SELECT "idOrders","cBookName" FROM "dbo"."EOPO_OrdersFull" WHERE "idOrders" = @P1 OR "idOrders" = @P2 OR "idOrders" = @P3 OR "idOrders" = @P4 OR "idOrders" = @P5 OR "idOrders" = @P6 OR "idOrders" = @P7 OR "idOrders" = @P8 OR "idOrders" = @P9 OR "idOrders" = @P10', 68196, 68195, 76222, 102831, 121398, 85164, 90659, 76826, 107808, 107803
select @P1и далее, при прокрутке, по необходимости:
Профайлерexec sp_execute 1, 104809, 102239, 72734, 84679, 70756, 56659, 95913, 75459, 64982, 108314ну и т.д.

Похожим образом это сделано в Janus (соответственно, есть свойство FullyLoaded и метод LoadEntireRecordset, очень удобно). Но условия такие, что вместо GridEx нужно использовать VSFlexGrid. Пробовал несколько дата-контролов - все они качают базу целиком без всяких там FullyLoaded...

TOP ... и прочее изменение архитектуры не предлагать - при необходимости юзер имеет право пролистать хоть до конца все 70к записей без отдельных нажатий на кнопки.

P.S. Отдельное спасибо тому, кто переведёт на русский "Paged data retrieving" так же коротко.
...
Рейтинг: 0 / 0
23.07.2008, 18:13
    #35448064
Дмитрий Исаев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Paged data retrieving в гриде
Сообразил! Конечно, если после...Private db As DAO.Database
Private rsBooks As DAO.Recordset
...
Set db = OpenDatabase("...", False, False, ...)
strQuery = "SELECT ..."
Set rsBooks = db.OpenRecordset(strQuery)
Set DAOBooks.Recordset = rsBooks ' здесь DAOBooks - контрол типа Data...не присваивать тупо DataSource гриду, а накатать свой код загрузки из Data в VSFlexGrid, то задача решается, хотя относительно криво и неудобно. По-прежнему ищется более красивое решение! Хочу, как в Янусе...
...
Рейтинг: 0 / 0
23.07.2008, 18:19
    #35448079
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Paged data retrieving в гриде
Постраничная выборка данных :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Paged data retrieving в гриде / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]