Progressbar состояния выполнения запроса

Форум посвящён работе с базами данных в .NET.

Модератор: Ramzes

Andrew Sherd
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 10.05.2004 (Пн) 0:18
Откуда: Санкт-Петербург

Progressbar состояния выполнения запроса

Сообщение Andrew Sherd » 06.04.2007 (Пт) 15:37

Добрый день уважаемые форумчане.

Думаю, что вопрос возникал уже не раз, но на форуме ответа на него я так и не нашел:

Дано: VB.NET 2005 + ADO.NET + SQL Server 2005

Условие: при загрузки формы происходит подключение к БД и выполнение ХП. Т.к. записей достаточно много, то это занимает какое-то время.

Цель: Сделать на форме прогресс бар состояния выполнения запроса.
-------------------------------
Можно ли так? Если ответы уже звучали на этот вопрос, приношу свои извинения и не сочтите за труд дать прямую ссылку на ответ.
Маленькие хитрости: Если золотую рыбку положить на сковородку, количество желаний увеличивается да 50!!!

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 06.04.2007 (Пт) 16:33

считывать через DataReader
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Andrew Sherd
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 10.05.2004 (Пн) 0:18
Откуда: Санкт-Петербург

Сообщение Andrew Sherd » 06.04.2007 (Пт) 16:53

В DataReader поступает результат уже выполненного запроса. Из него на форму будет быстро грузиться - выполнение запроса и передача данных больше всего грызут.
Маленькие хитрости: Если золотую рыбку положить на сковородку, количество желаний увеличивается да 50!!!

Wasup!
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 21.06.2005 (Вт) 11:09

Сообщение Wasup! » 24.10.2007 (Ср) 17:00

Насколько я знаю, получить прогресс выполнения самого SQL запроса нельзя, поскольку до получения результатов запроса сама СУБД не знает, сколько времени займет выполнение, и сколько запрос вернет записей.
Можно сделать прогресс только на фетч на клиента или на циклическую обработку записей в хп, когда каждая запись обрабатывается отдельным коротким запросом.
Хотя, например, в Oracle есть табличка V$session_longops, обращаясь к которой в параллельной сессии можно видеть примерный ход выполнения длинных операций, может быть, что-то есть и в MSSQL.


Вернуться в ADO.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList