Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2007, 17:31   #1
QuAlex
 
Регистрация: 04.10.2007
Сообщений: 8
Сообщение Остановка ADODS при OnFetchProcess

Есть задача: приостановить обработку запроса при выполнении ADOQuery по желанию пользователя.
Данные, которые уже переданы, должны остаться видимыми в Grid'е.
Я не знаю как это сделать.
В идеале нужно будет продолжить закачку, но это не обязательно.
Этот тестовый код не работает, но я хочу сделать примерно так же

Код:
procedure TTestForm.EventFetchProgress(DataSet: TCustomADODataSet;
  Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
var
  currTick: DWORD;
begin
  currTick := Windows.GetTickCount;
  // Ограничим обновление до 5 раз в секунду
  if ((currTick - Self.FTick) > 200) or (Progress = MaxProgress) then begin
    Self.FTick := currTick;
    Label1.Caption := Format('%d, Delta: %d',
      [Progress, MaxProgress-Progress]);
    Application.ProcessMessages;
  end;
  // попытаемся отменить работу
  if Self.FCancel then begin
    EventStatus := esCancel;
    Self.FCancel := false;
  end;
end;
Разумеется eoAsyncFetchNonBlocking установлен.

Ожидается, что кто-то поставит флаг FCancel и обработка остановится.
Если сделать DataSet.Close вместо EventStatus := esCancel, то все остановится, но Grid, разумеется, очистится.

И еще вопросик: для SQL Native Client и MS SQL 2005 Delta всегда равна 15 (за исключением последнего Event'а). Это нормально?
...Наперекор всем сомнениям успеха добьется лишь тот, кто способен действовать в любых условиях...
Heinz Wilhelm Guderian
QuAlex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ricoh Aficio FX200, замятие(остановка печати) PDVich Компьютерное железо 0 07.05.2008 10:22
Управление потоками. Запуск, остановка, приоритет потока. metamfetamin Помощь студентам 5 11.11.2007 12:45