Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.09.2007, 16:51
Jacky Jacky вне форума
Прохожий
 
Регистрация: 24.06.2007
Адрес: Тюмень
Сообщения: 10
Репутация: 10
По умолчанию Отображение процесса получения файла

Может быть задаю вопрос не в ту тему, но в "Базах данных" мы ответа так и не нашли.

Ситуация следующая:
Есть СУБД MS SQL Server, в которой хранится,в частности, внутренний документооборот.
Клиенты коннектятся (с помощью ADO) через локальную сеть и через интернет (диал-ап, выделенка, у кого что).
Допустим, клиент получает из БД через запрос 1 запись, хранящую в себе файл. Если файл около 100 кб, то через диалап они его могут получать минуту-две-три...
Хотелось бы отображать ProgressBar или Gauge, отображающие процесс получения результата запроса от СУБД.
Иначе программа "висит", на время получения данных, клиент пугается. Если файлик большой, а инет узкий - то, соответственно, процесс получения ответа от СУБД может затянуться на 5-10 минут.

Как вывернуться в данной ситуации?
Ответить с цитированием
  #2  
Старый 09.09.2007, 10:23
Аватар для X-rem
X-rem X-rem вне форума
Начинающий
 
Регистрация: 06.04.2007
Адрес: Питер
Сообщения: 119
Репутация: 10
По умолчанию

Я конечно не обосо знаю ADO и как с ним работать но можно попробывать Application.ProgressMessages
__________________
[ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ]
Delphi 7 user
  • Indy 10.5.5
  • AbfEffects & Controls
  • LockBox
  • AlphaControls
  • Eagle CDK

ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738)
Ответить с цитированием
  #3  
Старый 09.09.2007, 16:22
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Ну, во-первых, не Application.ProgressMessages, а Application.ProcessMessages, но тогда уж лучше юзать эту процедурку:
Код:
procedure Delay(Wnd: HWND = 0);
var
  Msg: TMsg;
begin
  while True do
  begin
    if not PeekMessage(Msg,Wnd,0,0,PM_REMOVE) then Break;
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;

А как именно обрабатывать процесс ответа - я не смогу подсказать, т.к. из БД работал только с SQLite и там такого не реализовывал...
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter