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

Вниз

Как заставить ADOQuery не скачивать все записи набора данных?   Найти похожие ветки 

 
Askik   (2003-04-18 15:44) [0]

Как заставить ADOQuery не скачивать все записи набора данных, а только по мере необходимости, т. е. чтобы он не делал сразу Fetch для всех записей?


 
super   (2003-04-18 16:03) [1]

Нада делать TOP N или Fetch:=false;

тока он всё равно вернет тебе всё но всё ты не увидишь...


 
Askik   (2003-04-18 16:22) [2]

>>Нада делать TOP N или Fetch:=false;
А можно узнать а где это делать?

>>тока он всё равно вернет тебе всё но всё ты не увидишь...

Что-то непонятно, получается, что у ADO есть такой большой минус - при запросах скачиваются ВСЕ ЗАПИСИ?
Чтобы ты не делал?

Я понимаю, если бы я делал что-то типа Last или RecordCount, тогда пусть скачивает наздоровье.
Зачем же скачивать все сотни записей, когда отображаются только 20?
При схеме BDE->ODBC-> MSSQL все работало нормально.

Очень удевительно.


 
DSR   (2003-04-20 10:11) [3]

а если select делать? как-нибудь можно ведь ограничиться.наверное. или я чего то не так понял?


 
Alexandr   (2003-04-20 10:24) [4]

кароче в запросе ограничивай.
И то твоя фраза

> Зачем же скачивать все сотни записей, когда отображаются
> только 20?

какая-то двусмысленная...



 
Askik   (2003-04-20 14:33) [5]

>> DSR (20.04.03 10:11)
>>Alexandr © (20.04.03 10:24)

Дело в том, что я раньше работал по схеме:
Приложение->BDE->ODBC->MSSQL-Server.
И работало все следующим образом:
Например пользователь открывает справочник клиентов и я делаю простой запрос к спраочнику: SELECT ... FROM Clients ...
Допустим в базе 2000 клиентов.
Открывается таблица с клиентами и отображаются сначало естественно первые 20 клиентов, так как в гриде сразу все не отобразить. Так вот по мере продвижения вниз по списку происходило постепенное "докачивание клиентов", как воникала необходимость отобразить его на экране. Это было видно по трафику сети (сервер находится на другом компе) да и вообще курсор передергивался на песочные часы (crSQLWait), что происходит тогда когда идет ображение к БД. И соответственно экономился трафик сети и нагрузка на сервер небольшая.
Кто этим руководит BDE или ODBC я не знаю.

После перехода на ADO я этого не замечаю, вот и возник вопрос.
Я так понимаю, что теперь этим придется заниматься мне? Т. е. мне надо следить, сколько записей на даный момент отобразится на экране и столько скачивать? Это на самом деле усложняет задачу.

Кто что знает по этому поводу просьба помочь.


 
sniknik   (2003-04-20 21:25) [6]

настрой асинхронное получение данных. первые отобразятся моментально, остальные докачаются по ходу.

кстати 2000 это несерьезно (можно не успеть заметить как все закачается) ~16-тыс качается (у меня) ~ 0.5-0,9 сек.
несерьезно для закачивания но просмотреть и обработать столько ни один оператор не сможет. лутше ограничить запрос (для справочника по группе например).


 
BlackTiger   (2003-04-22 14:56) [7]

Вот проблема... Трафик... Нагрузка.
Возьми грид от DevExpress (cxGrid/dxGrid). У него есть несколько режимов работы ("все-сразу", "с докачкой").

ЗЫ: Почитайте про ADO.NET - вот где можно посыпать голову пеплом (предварительно выдрав волосы).



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
1-34449
Feb
2003-04-29 05:00
2003.05.12
Как мне создавать вкладки


14-34543
Карлсон
2003-04-22 16:39
2003.05.12
FM Tuner


1-34412
pigor
2003-04-30 14:02
2003.05.12
Как написать


6-34537
Winni
2003-03-07 07:37
2003.05.12
Как перехватить щелчок по гипертекстовой ссылке в WebBrowsere?


14-34578
Ixion
2003-04-23 00:34
2003.05.12
Посоветуйте ЖК монитор





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский