Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

Как открыть TADODataSet не полностью?   Найти похожие ветки 

 
chis   (2004-09-14 11:27) [0]

Используется MSSQL2000. Хочется чтобы таблица, или запрос открывались по мере необходимости, а не вся целиком. Как это можно сделать ?
Я пробовал поменять CursorLocation на clUseServer тогда выборка идет замечательно так как надо, но скроллинг у грида кривой.


 
Sergey13 ©   (2004-09-14 11:30) [1]

>Хочется чтобы таблица, или запрос открывались по мере необходимости, а не вся целиком.
Так тебе от забора или до вечера? 8-)


 
chis   (2004-09-14 11:33) [2]

Время терпит, так что можно от забора :)


 
Ega23 ©   (2004-09-14 11:34) [3]

Select top 100 * from Table1


 
Sergey13 ©   (2004-09-14 11:36) [4]

2[2] chis   (14.09.04 11:33)
Просто в той цитате 2 разных, никак не связанных между собой, вопроса. Когда открывать или сколько открывать?


 
sniknik ©   (2004-09-14 11:41) [5]

> Я пробовал поменять CursorLocation на clUseServer тогда выборка идет замечательно так как надо, но скроллинг у грида кривой.
одно из двух либо выборка по необходимости (с неизвестным количеством записей и "кривым" скролингом), либо полная выборка с точным знанием количества и номеров в рекордсете и "прямой" скрол (который именно по этим данным и работает).
выбирай.

Ega23 ©   (14.09.04 11:34) [3]
это тоже "конечная" выборка без "дозабора" ;), тут тоже будет "кривой" скрол. (не в прямом смысле, а в том что он будет по ограниченному числу записей, а нужно по всем, и по скролу не узнать есть ли что там дальше)


 
chis   (2004-09-14 11:45) [6]

"Сколько открывато" - не годиться, открывать по мере необходимости, чтобы в случай чаво и сортировать и фильтровать можно было (так-что select top тоже не годиться).
Меня удовлетворило бы открытие курсора на стороне сервера, если бы был приемлемый скроллинг на гриде, хотя-бы на момент уже открытых записей.


 
}|{yk ©   (2004-09-14 11:47) [7]

Возьми dxDBGrid, там есть свойство PartialLoad. Фетчит только первые 20 записей, а потом по мере прокрутки


 
chis   (2004-09-14 11:50) [8]

Может быть подскажете как можно организовать что-то похожее на просмотр таблиц в Enterprise Managere. Там как раз то-что нужно, скроллинг показывает состояние уже открытых записей.


 
chis   (2004-09-14 11:51) [9]

В качестве грида используется EhLib


 
sniknik ©   (2004-09-14 11:55) [10]

> }|{yk ©   (14.09.04 11:47) [7]
это и есть серверный курсор, только PartialLoad задается количеством строк в гриде (вернее любой последней запрошеной, если сделать last то все выкачает) при нажатии на pagedawn.
подозреваю что и поведение скрола там будет аналогичным (точно не скажу, не пользуюсь).


 
chis   (2004-09-14 12:09) [11]

Sergey 13 - так что там от забора?


 
Sergey13 ©   (2004-09-14 12:19) [12]

2[11] chis   (14.09.04 12:09)
>Sergey 13 - так что там от забора?
Обедал я. А что забор? 8-)
Я такие вопросы всегда решаю так. Стараюсь добиться, что бы запрос (который в грид) возвращал как можно меньше. Мой критерий 100-150 записей максимум. После этого меня уже не особо волнует "докачка". Кстати эту "докачку" некоторые движки обеспечивают "автоматом", просто про это надо помнить и уметь пользоваться. Например, если в ЕхЛиб-гриде поставить в футер нечто вроде суммы или каунта, то пофиг все настройки - с сервера заберется сразу все.
А насчет когда открывать - тут уж ты хозяин-барин - когда надо тогда и открывай.


 
chis   (2004-09-14 12:24) [13]

Открывать все мне надо только при необходимости (например переместившись в конец набора записей), открывать нужно таблицы, процедуры, представления, так-что как понимаешь запрос не всегда можно сделать.


 
Sergey13 ©   (2004-09-14 12:29) [14]

2[13] chis   (14.09.04 12:24)
Ты меня запутываешь все больше. Это специально? 8-)
>например переместившись в конец набора записей
Какого набора? Подозреваю того, про который я писал в [12].

>открывать нужно таблицы, процедуры, представления
связанные что-ли? Ну дык и открывай когда надо. На афтерскрол главного НД повесь например (пере)открытие подчиненного. Или я не въезжаю в проблему?


 
Sergey13 ©   (2004-09-14 12:33) [15]

А, на sql.ru ты тоже отметился.
>У меня программа типа базолаза
Расшифруй этот термин плиз.


 
chis   (2004-09-14 12:38) [16]

IBExpert, Enterprise Manager... короче все что позволяет программеру передвигаться (лазить) по базе данных. Кстати и там и там для просмотра таблиц используется необходимый мне механизм - первоначально открывается только то что может показать грид, а при перемещении скроллинга вниз открываются последующие записи и соответсвенно "преображается" скроллинг.


 
Sergey13 ©   (2004-09-14 12:42) [17]

Я тебе в [12] писал про футер ЕхЛиба. Это не твоя та самая причина? Может ты сразу статистику по открываемой таблице кажешь.


 
chis   (2004-09-14 13:07) [18]

Нет, слишком большие таблицы, к тому-же статистику можно как раз запросами сформировать - оно быстрее будет.


 
Ega23 ©   (2004-09-14 13:30) [19]

Блин, а ты о пользователе подумал? Каково ему смотреть выборку хотя бы из 1000 записей? Оптимальный набор - не более 100 за раз.
Введи лучше систему фильтрации, там по имени, фамилии, по подразделениям каким-нибудь, датам и т.п. В результате можно ограничить выборку вплоть до одной записи, что гораздо удобнее, чем 10000.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.04 c
3-1095089123
Johnny Raw
2004-09-13 19:25
2004.10.10
проблема с table.locate или с головой


1-1095695552
volser
2004-09-20 19:52
2004.10.10
Редактирование ресурсов exe


4-1094488155
Fon
2004-09-06 20:29
2004.10.10
Фон Edit-a


4-1094036756
sesh
2004-09-01 15:05
2004.10.10
Процессы в системе


1-1096275024
Aleksandr.
2004-09-27 12:50
2004.10.10
Можно ли как-то оптимизировать этот код (для скорострельности)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский