Форум » [x]Harbour » [?] PACK » Ответить

[?] PACK

Dima: Во время упаковки базы по команде Pack он же __dbPack() размером от 500 метров винда 7 пишет что приложение не отвечает....пока Pack не закончен. Базы пакую в цикле. Пробовал до Pack запускать отдельный поток в котором тупо в цикле пашет hb_releasecpu() а после Pack завершать поток...не помогло. Как то можно решить эту "проблему" ? PS на винде XP такого не замечал. PS-1 вариант не юзать Pack не предлагать (знаю о чём речь).

Ответов - 25, стр: 1 2 All

Pasha: Метод adsPack из ADSCDX вызывает функцию AdsPackTable из ace. Эта функция только частично поддерживает функциональность callback вызовов, а именно: если у таблицы есть индекс, то при индексации после упаковки будет вызвана callback - функция. При самой упаковке ничего не вызывается, клиент просто ждет ее завершения.

Dima: Pasha пишет: При самой упаковке ничего не вызывается, клиент просто ждет ее завершения. Понял. Отсюда и мнимое подвисание на стороне клиента.

Haz: Dima пишет: Вопрос на засыпку Ты сделал SQL запрос который работает более 5 секунд Было такое, потом изменил структуру баз и пока все нужные запросы выполняются не более 2 секунд. При построении сложных отчетов , когда обрабатываются объемы минимум в 50 000 записей за месяц, пошел другим путем: Выгружая отчет в Excel не готовлю его заранее одним запросом, а вызываю запрос для формирования каждой строки Excel. Так немного дольше, но не критично, зато все это время пользователь не отрываясь смотрит как неведомая сила набирает на экране его отчет и еще никто не жаловался на время. Наоборот, как дети радуются когда на глазах рисуется таблица, сама форматируется, красится в нужные цвета и заполняется


Alex_Cher: Haz пишет: неведомая сила набирает на экране его отчет и еще никто не жаловался на время. Наоборот, как дети радуются когда на глазах рисуется таблица, сама форматируется, красится в нужные цвета и заполняется ... а вот отсюда можно поподробней, насколько я при делах программно создается файл Excel, формируется, заполняется и готовый вылетает на экран. И как это организовывается чтобы на глазах пользователя заполнялась и форматировалась каждая строка таблицы ?

Dima: Alex_Cher Через OLE создаешь объект Это не включаем oExcel:Visible := .f.



полная версия страницы