Как отследить процесс записи данных в в базу данных
Вопрос такой: Допустим мне надо одним запросом в базе данных изменить большое количество данных. Делаю примерно так:
query->Add("update table set code=1 where number>=1 and number<=1000000");
query->ExecSQL();
Этот запрос очень долго обрабатывается. Так вот можно ли как то определить на сколько процентов выполнился запрос (или сколько записей обработано)?
1. Использовать асинхронный режим выполнения процедуры и отображать на клиенте таймер(или еще что-нибудь)
2. Записывать ход выполнения процедуры в таблицу на сервере и во втором коннекте читать оттуда данные.
Вот это полистай:
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=23884&hl=progress
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=15858&hl=progress
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=21469&hl=progress
По-простому никак. Варианты:
1. Использовать асинхронный режим выполнения процедуры и отображать на клиенте таймер(или еще что-нибудь)
2. Записывать ход выполнения процедуры в таблицу на сервере и во втором коннекте читать оттуда данные.
Мдя... ладно... чем мне так напрягаться, пусть уж лучше юзер наблюдает не прогресс бар а какую-нибудь анимацию :) это попроще будет...
Простенько и со вкусом...И юзера не скучают...:-)