![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ProgressBar ;для ADOQuery1.ExecSQL [D5, MSSQL]
gizar © (2002-03-12 14:37:00)Уважаемые дельфийцы!!!
Проблема....замучила уже...
Соединяюсь с MS SQL Server 6.5 через TADOConnection.
Через ADOQuery1.ExecSQl запускаю load database... from disk... with STATS (так как наборов данных никаких не возвращается) и немогу сообщения отловить о процентах выпорлнения восстановления базы, которые в Enterprise Manager выдаются на закладке Results.
Посоветуйте как ?
Может быть как нибудь можно привязать ProgressBar...?
Заранее благодарен.
Гизар
gizar (2002-03-12 16:18:00) [1]Не работает...((((, даже не доходит до события OnFetchProgress
Delirium (2002-03-12 15:02:00) [2]Ладно расскажу по подробнее:
у ADOQuery есть событие - OnFetchProgress, которое при асихронном исполнении запроса позволяет передавать в ProgressBar значения, показывающие на каком этапе находится загрузка RecordSet-а. Вот и всё - никаких других подобных событий в ADO нет, единственное что можно сделать - завести собственный Timer и, ориентируясь на среднее время исполнения, попытаться что-то показать в ProgressBar-е.
gizar (2002-03-12 14:56:00) [3]А если использовать ADOQuery.Open ассинхронно, то как выводить сообщения ...?
gizar (2002-03-12 14:54:00) [4]ADOQuery.Open это не подходит, потому что Delphi начинает ругаться на то что никаких данных не возвращается, ExecSQL специально сделан для этого.
Вроде еще есть союытие в ADOConnection OnInfoMessage но на совсем понятно как им пользоваться
Delirium (2002-03-12 14:50:00) [5]Забыл добавить ADOQuery надо исполнять асинхронно
DiggerAbstract (2002-03-12 14:44:00) [6]насколько я знаю - никак
когда выполняется запрос - управление берет на себя сервер и выполняемая задача является недоступной
Delirium (2002-03-12 14:44:00) [7]Метод ExecSQL создан именно для того, чтобы ничго не возвращать.
Используй ADOQuery.Open