powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Преравать ассинхронное выполнение ?!
4 сообщений из 4, страница 1 из 1
Преравать ассинхронное выполнение ?!
    #32091160
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак не получается прервать ассинхронное выполнение запроса.
Суть задачи такова:
Delphi6 + MSSQL2000
делаем восстановление резервной копии из именованного канала,
есть Connection : TADOConnection,
связанный с ним ADOCommand : TADOCommand, у которого в ExecuteOptions указано eoAsyncExecute = True
и примерно такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
...
  Connection.Open;
  ADOCommand.CommandText := 'restore database [pubs] from pipe = ''\\.\pipe\restorepubs''';
  ADOCommand.Execute;      // запустили восстановление ассинхронно
  try
    {дальше всякий код по открытию канала и засовыванию в него резервной копии
    в процессе выполнения может возникнуть исключение - сгенерируем его!}
     Raise Exception.Create('Типа не могу записать данные в именованный канал');
  except
     on E : Exception do
      begin
         {и вот тут-то и надо прервать выполнение ADOCommand}
          ADOCommand.Cancel; //  А вот не тут-то было! НЕ РАБОТАЕТ!!! 
      end;
  end


Как же быть-то ?!
Буду признателен за любые варианты !
...
Рейтинг: 0 / 0
Преравать ассинхронное выполнение ?!
    #32091165
Фотография AVL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как я понимаю процесс идет асинхронно. Поэтому может надо отлавливать OnFetchComplete?
...
Рейтинг: 0 / 0
Преравать ассинхронное выполнение ?!
    #32091185
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во-первых OnFetchComplete - это событие какого компонента ???
Во-вторых мне не надо отслеживать завершение работы запроса, мне нужно принудительно его прервать , иначе он так и останется висеть в ожидании чуда
...
Рейтинг: 0 / 0
Преравать ассинхронное выполнение ?!
    #32091247
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу пардону :).
Ответить на мой вопрос было сложно, так как недостаточно код привел.
Разобрался сам.
А дело было вот в чем.
После запуска запроса на исполнение приложение открывает именованный канал и пишет туда данные.
Так вот запрос не прерывался потому нужно было сначала закрыть дескриптор канала, т.е. отцепиться от него. В этом случае все работает!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Преравать ассинхронное выполнение ?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]