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

Вниз

ADOQuery и Select   Найти похожие ветки 

 
Max_   (2003-09-09 13:01) [0]

Пишу Select, который возвращает 7000-12000 записей. ADOQuery со свойством CursorLocation=clUseClient пересылает сразу все записи на клиента, если CursorLocation=clUseServer- то Grid"a использовать невозможно! Можно ли реализовать что- то вроде BDE, что б пересылало несразу же, а только при нажатие Last, пакетами? Пытался применять CacheSize-не пашет! :(


 
sniknik   (2003-09-09 13:17) [1]

> если CursorLocation=clUseServer- то Grid"a использовать невозможно!
возможно, + клиентдатасет.

> Можно ли реализовать что- то вроде BDE, что б пересылало несразу же, а только при нажатие Last, пакетами?
можно лутше, асинхронное получение пакета. (первые записи видно сразу, можно работать, до конца качается в фоне)

> Пытался применять CacheSize-не пашет! :(
ну ещебы, когда включаеш скорость еще не едеш это только часть процесса. (машинное)


 
Max_   (2003-09-09 13:25) [2]

клиентдатасет??? Этот дружище отпадает безоговорочно и по скорости Fetch"a, и по дрю причинам!

> ну ещебы, когда включаеш скорость еще не едеш это только
> часть процесса. (машинное)

ХОРОШО, А как включить зажигание?


 
sniknik   (2003-09-09 13:59) [3]

> клиентдатасет??? Этот дружище отпадает безоговорочно и по скорости Fetch"a, и по дрю причинам!
ну надеюсь они важные эти "дрю причины", потому как Fetch это не причина вовсе.

> ХОРОШО, А как включить зажигание?
ADODataSet1.ExecuteOptions:= eoAsyncFetch;


 
Max_   (2003-09-09 16:47) [4]

ADODataSet1.ExecuteOptions:= [eoAsyncFetch];
ADODataSet1.CacheSize:=20;
всё равно Fetch"ит всё сразу!!!


 
sniknik   (2003-09-09 17:08) [5]

не все, ты просто не успеваеш заметить.

поставь на Fetch прогрес у датасета.

procedure TForm1.ADODataSet1FetchProgress(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
Label1.Caption:= IntToStr(MaxProgress);
end;

и возьми таблицу посолиднее, тысячь на 150 гдето, тогда увидиш. (12 у меня пролетает гдето за 0,35сек, за это время ничего нельзя успеть увидеть)


 
Max_   (2003-09-10 14:02) [6]

Хорошо, а как остановить Fetch в нужном месте, а потом продолжить?


 
sniknik   (2003-09-10 14:21) [7]

а это извиняюсь, зачем? занять ресурсы сервера, сбить нормальную работу, и под эту фишку вчинить иск мелкософту?
или хочеш подгнать по тормозам к серверному курсору? ну так им и пользуйся, закачка но локаль по мере обращения (но ресурсы SQL server-а не занимаются).

не устраивает пиши в микрософт пусть свой софт под тебя подладят.


 
Max_   (2003-09-10 14:43) [8]

:) :) Ну это затем, что б когда человек запускал Select с результатом на 30000 записей или просто написал select * from my_table, с целью посмотреть что там за таблица и что в ней хранится, что б ему показало только 30 записей (про это и был мой первый вопрос), а потом он вправе делать всё что угодно: дальше слать данные или отказаться! Ведь не справедливо качать ему всё сразу, пока он довольный седит и изучает структуру таблицы! Я ж не могу просить, что для просмотра таблицы обязательно введите rownum<20! :)

> ну так им и пользуйся, закачка но локаль по мере обращения
>

А как им пользоваться и неуже ли нет метода, который останавливал бы Fetch?


 
sniknik   (2003-09-10 15:16) [9]

> что б ему показало только 30 записей
SELECT TOP 30 * FROM Table
без всяких запарок.
хочеш дальше, новый запрос, 30 записей повтора никто не запетит.

> Ведь не справедливо качать ему всё сразу
жизнь вообще несправедливая штука. и почему бы не закачать пока он там херней страдает? комп простаивает! так будет гораздо быстрее.

> пока он довольный седит и изучает структуру таблицы!
структуру(?) можно получить и не открывая таблицу.

>> ну так им и пользуйся, закачка но локаль по мере обращения
> А как им пользоваться и неуже ли нет метода, который останавливал бы Fetch?
остановить это значит подвесить sql server на середине операции. думаеш это правильно? сделай cansel, вроде останавливает, (прием, сервер подозреваю все одно в пустоту все зальет, потому как не успеет заметить) но только это его остановит, т.е. чтобы продолжить придется начать заново.
а пользоватся просто, просто ставиш серверный курсор и докачка сама идет, по мере обращения к записям, но только не с операции на SQL сервере (она уже выполнилась) а с серверного курсора где твой рекордсет лежит и SQL сервер не занимает.

> 30 записей (про это и был мой первый вопрос),
трудно его было понять, там даже цифра 30 не фигурирует. ;)



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

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

Наверх





Память: 0.48 MB
Время: 0.015 c
14-96346
Telepat
2003-09-09 00:56
2003.09.29
Помогите понять в чём разница???


6-96323
Е-Моё имя
2003-07-29 13:20
2003.09.29
настройка показа картинок для TWebBrowser


1-96165
First_May
2003-09-16 10:26
2003.09.29
Класс


3-96105
_VaaL_
2003-09-09 12:49
2003.09.29
DBExpress + MySQL


3-96128
denis24
2003-09-03 17:00
2003.09.29
работа с excel через ado





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