lonejan |
Отправлено: 23.03.2007, 16:15 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Как сделать выборку из базы и показать прогресс выборки и возможно ли это всё с таким вот запросом, (когда выборка идёт из подзапроса)
SQL | SELECT
t.descr,
sum(t.ost),
sum(t.rez)
FROM (SELECT RTRIM(s.descr) descr,
sum(r.sp125) ost,
0 rez
FROM rg119 r LEFT JOIN sc12 s ON r.sp122=s.id
WHERE period=CONVERT(DATETIME,'20070301',20)
GROUP BY s.descr
UNION
SELECT
RTRIM(s.descr),
0,
sum(r.sp144)
FROM rg139 r LEFT JOIN sc12 s ON r.sp143=s.id
WHERE period=CONVERT(DATETIME,'20070301',20)
GROUP BY s.descr)
t
GROUP BY
t.descr
| |
|
Gedeon |
Отправлено: 23.03.2007, 16:28 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Это не возможно вообще, уже обсуждалось, юзайте поиск.
|
|
lonejan |
Отправлено: 23.03.2007, 17:23 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Это как раз и возможно, только не совсем знаю как реализовать это в билдере, и ещё есть сомнения насчёт того, что оно сначала выполнит подзапрос, а потом начнёт выбирать из него данные, в таком случае это будет почти бесполезно |
|
desivers |
Отправлено: 23.03.2007, 17:50 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 32
|
раскажи какие у тебя есть идеи а мы их поробуем реализовать. |
|
Ramzay |
Отправлено: 23.03.2007, 19:07 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 31
|
Я не знаю как правильно сделать прогрессбар, но я знаю средство как рассеить твою грусть. Надо просто обмануть юзера.
Перед выполнением запроса уже приблизительно известно сколько он будет работать. Ставишь таймере время где-то два-три раза большее и запускаешь по таймеру прогрессбар. Если запрос выполнится раньше, чем прогрессбар дойдет до конца, то никто тебе дурного слова не скажет. Можно прогрессбар в первой половине пути заставить бежать быстрее, а после того как он перевалит за середину — медленнее. Так делает Билл Гейтс, когда мы пытаемся остановить службу.
|
|
Gedeon |
Отправлено: 23.03.2007, 19:09 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
QUOTE (Ramzay @ 23.03.2007, 19:07) | Я не знаю как правильно сделать прогрессбар, но я знаю средство как рассеить твою грусть. Надо просто обмануть юзера.
Перед выполнением запроса уже приблизительно известно сколько он будет работать. |
Ну да, и обьем данных на сервере не меняется и нагрузка всегда одинаковая
|
|
Ramzay |
Отправлено: 23.03.2007, 20:36 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 31
|
QUOTE | Ну да, и обьем данных на сервере не меняется и нагрузка всегда одинаковая |
Смотреть нужно по месту. Во всяком случае Билли до сих пор нас обманывает. Похожая ситуация в IE, когда прогрессбар отображает ход загрузки страницы, реально не зная как скоро он ее выкачает. |
|
Tantos |
Отправлено: 24.03.2007, 09:00 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 108
|
C IE как раз гораздо проще, т.к. известены размер файла, текущая скорость передачи, количество переданных байт и прошедшее время. Исходя из этого, можно довольно-таки просто рассчитать приблизительно оставшееся время загрузки. А с БД такой фокус не пройдет. Максимум, можно показать диалог по типу копирования файла Проводником.
Отредактировано Tantos — 24.03.2007, 16:02
|
|