Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Счётчик для TQuery.Last??? [D6]


Страницы:   1 2

Max_ ©   (2003-06-18 19:39:00) 

Как при выполнении метода TQuery.Last или TTable.Last "узнать" о скорости "перекачки" данных, т.е. что бы был счётчик? Данные качаются из Oracle!


NickBat   (2003-06-19 18:07:00) [1]

> хых, нафига пользователю спрашивается отчёт по кускам? Он его потом шо клеить будет?

Н-да... А вы отчеты на рулонах печатаете?
Тогда конечно придется клеить.
И знаете, что по моему автору ветки уже по барабану наши споры, так, что давайте закончим.


jack128   (2003-06-19 16:25:00) [2]


> e:Cardinal;
> begin
> GetExitCodeThread(Second_thread.Handle,e);
> ExitThread(e);
> end;

ExitThread выходит из текущего потока(из того из которого ты вызвал эту функцию) и входной параметр у этой функции не хендл.

> Признавайся у тебя хелп инсталлирован или нет?
копирайт Anatoly Podgoretsky ©


Fiend   (2003-06-19 16:25:00) [3]

То NickBat:
хых, нафига пользователю спрашивается отчёт по кускам? Он его потом шо клеить будет? или вы еще хотите приблуду сделать шоб куски отчётов клеила?


NickBat   (2003-06-19 16:20:00) [4]

> Fiend © (19.06.03 15:45)
Внимательный вы наш. :)) Я имел ввиду отмену фетч.
Почему его не спасет первые Н записей непонятно. Можно ведь отчет частями делать.


Fiend   (2003-06-19 15:45:00) [5]

То NickBat: как тока вы получили первую запись- запрос уже выполнен и идёт фетч. А это разные вещи.
Про Н-записей - оно то есть, но его не спасёт.

То Max_:
И про то что прерывать запрос надо ТерминатеСред - полная чушь! Потому как разрушается в лучшем случае поток, но никак не отменяется выполнение АПИ библиотеки через которую пользуешь БД.

Для того чтобы что-то думать по этому поводу, надо определиться точно, что у тебя за БД, и через что ты с нейф работаешь


NickBat   (2003-06-19 12:42:00) [6]

Я плохо знаком с Оракл, но во первых там есть возможность выбора из запроса первых Н записей, а во-вторых, если мне не изменяет память, там есть возможность остановить выполнение запроса.


Max_   (2003-06-19 12:21:00) [7]

Я понял, но ещё 1 вопрос не даёт покоя: когда запускаешь метод Last в другом потоке- как его прервать в любой момент! (я имею ввиду поток) Как это сделать???? TerminateThread- все говорят, что это плохо! Тогда я пишу:
var
e:Cardinal;
begin
GetExitCodeThread(Second_thread.Handle,e);
ExitThread(e);
end;
А он мне из главного потока выходит, хоть я и указал ему Second_thread.Handle???


Zacho   (2003-06-19 12:19:00) [8]


> Max_ (19.06.03 12:01)

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

> P.S. А кто-нибудь вообще работал нпр. с SQL Navigator? (Там
> и скролить можно и нужно!!!!) Я бы не сказал, что это весьма
> неполноценная прога! (Zacho ©) :)

Не знаю я, что такое SQL Navigator, но если там действительно нужноскроллить десятки тысяч записей - то imho, либо это действительно неполноценная программа, либо просто ты не умеешь правильно с ним работать :)


Sandman25   (2003-06-19 12:15:00) [9]

>Так я про отчёты и говорю- у нас на работе всё к ним сводится!


А если так, то вообще не нужно никакого отображения. Запустили Query.Open, сразу после него вывели сообщение в динамик (чтобы пользователь услышал и подошел к компу), и сразу Preview для печати.
Зачем DBGrid?


Sandman25   (2003-06-19 12:03:00) [10]

Max_

Перед запросом данных с сервера запросите у пользователя ввести фильтр (обычно по дате), а затем читайте все, что он запросил без всяких счетчиков и прогрессбаров. Если пользователь был настолько ленив (или глуп), что не указал фильтр (указал плохой), то пускай сидит и ждет, пока все данные не закачаются. Через несколько таких запусков он научится указывать правильный фильтр, чтобы получить только те данные, которые ему нужны.


Max_   (2003-06-19 12:01:00) [11]

Так я про отчёты и говорю- у нас на работе всё к ним сводится!

>>А кто тебе мешает составить запрос таким образом, чтобы выводились данные и с учетом предыдущих запросов?-- Так мне в мануале так и писать:
1)Запросы, которые превышают 10000 не писать!
2)Не скролить полученный результат!
3)Один запрос не писать, лучше этапами, по 5-10!

P.S. А кто-нибудь вообще работал нпр. с SQL Navigator? (Там и скролить можно и нужно!!!!) Я бы не сказал, что это весьма неполноценнаяпрога! (Zacho ©) :)


Anatoly Podgoretsky   (2003-06-19 11:56:00) [12]

Колесо на мышке рассплавится


Наталия   (2003-06-19 11:46:00) [13]

Max_ (19.06.03 11:34)
Как пользователь на экране будет просматривать 500000 тысяч записей? Он их что - проанализирует, обобщит, сделает выводы? Просто просмотрит? Одно дело отчёт какой-нибудь из 10000 записей на принтер выдать, другое дело пользователю их на экран вывалить, чтобы он глаза сломал.


Zacho   (2003-06-19 11:42:00) [14]


> Max_ (19.06.03 11:34)

А мне кажется, что программа которая выбирает на клиента десятки тысяч записей для визуальнойработы с ними будет весьма неполноценной. :)
Ну пойми, не в состоянии нормальный человек работать с таким кол-вом записей в гриде. Что он с ними будет делать ? Туда-сюда скроллить, тупо уставившись в монитор ?


bushmen   (2003-06-19 11:38:00) [15]

А кто тебе мешает составить запрос таким образом, чтобы выводились данные и с учетом предыдущих запросов?


Max_   (2003-06-19 11:34:00) [16]

"выводить пользователям 10000-20000 в визуальные компоненты для того"- А это разве много, когда реальных данных порой бывает по 500000!!!! Мне кажется такая программа будет весьма неполноценной! И ещё вопрос: так зачем тогда вообще запросы писать, если нельзя потом результатов посмотреть? Запрет- это не выход из положения! :)


Наталия   (2003-06-19 11:25:00) [17]

"юзеру ты не запретишь скролить полученный результат (Last) и не обьяснишь, что это никому не нужно и лучше их не скролить! "
Вот на мой взгляд лучше программисту запретить выводить пользователям 10000-20000 в визуальные компоненты для того, чтобы они "скролилил".


Max_   (2003-06-19 10:46:00) [18]

При работе с Oracl"oм это очень полезная и нужная штука! В среднем у нас в таблице храниться 100000-150000. В запросах получается 10000-20000 записей и юзеру ты не запретишь скролить полученный результат (Last) и не обьяснишь, что это никому не нужно и лучше их не скролить! SQL Navigator, The Frog, OraEdit- все они обладают этими возможностями! Также как и проблема с методом Last когда запускаешь его в другом потоке и нужно его прервать! Как ето сделать???? Написал бы кто-нибудь, а то пишут такие процедуры которые в цикле! :)


Johnmen   (2003-06-19 09:41:00) [19]

>Max_

Все-таки ты хорошенько подумай, ЗАЧЕМ тебе это ?
Если будешь упорствовать в своем непонятном желании, то придется изучить набор функций библиотеки oci.dll или той, которую используешь.


Max_   (2003-06-18 20:50:00) [20]

скорость While цикла намного меньше чем у Last!!! Может на сервер обращатся и оттуда брать инфу?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо