Win 2003, Fr47, зависает сервер при экспорте БОЛЬШОГО ОТЧЕТА (прайс лист) на 33 тысячи позиций

отредактировано 20:12 Раздел: FastReport 4.0
win 2003, fr47, зависает сервер при экспорте БОЛЬШОГО ОТЧЕТА (прайс лист) на 33 тысячи позиций
(ИДЕТ НАГРУЗКА НА ХДД, ПИНГ не отвечает, терминал серверы недоступны, непосредственно с консоли в систему зайти можно но EXPLORER не стартут (экраны чёрные))
перегружается только под RESETOM

:)
Этот же самый отчёт на 10-12 тысяч позиций работает нормально.

Отчёт представляет собой
1 бонд МАСТЕР ДАТА
1 квери ( все 33 тычячи строк)

для каждой строки выполняется следующие скрипты (общая задача отформатировать строчки от нежелательных символов)
function Replace(Str, X, Y: string): string;
var
buf1, buf2, buffer: string;
i: Integer;

begin
buf1 := '';
buf2 := Str;
Buffer := Str;

while Pos(X, buf2) > 0 do
begin
buf2 := Copy(buf2, Pos(X, buf2), (Length(buf2) - Pos(X, buf2)) + 1);
buf1 := Copy(Buffer, 1, Length(Buffer) - Length(buf2)) + Y;
Delete(buf2, Pos(X, buf2), Length(X));
Buffer := buf1 + buf2;
end;
Result := Buffer;
end;


function EraseNoneedChars(str:string):string;
begin
Result:=str;
Result:=Replace(Result,'>','');
Result:=Replace(Result,'<','');
end;

function GetPictUrl(str:string): string;
begin
if trim(str)<>'' then Result:='http://www.shopv.ru/images/'+str else Result:='';
end;


Настройки репортера в дефолте
fstr.frxReport.ShowProgress:=false;
fstr.frxMailExport.ShowProgress:=false;
fstr.frxXLSExport.ShowDialog:=false;
fstr.frxXLSExport.OpenExcelAfterExport:=false;
fstr.frxXLSExport.ShowProgress:=false;

Комментарии

  • отредактировано 20:12
    памяти не хватает, ресурсов.... вопрос то в чем?
  • отредактировано 20:12
    А как можно всё таки получить этот прайс лист?

    где утекает память? я что то не могу понять почему 33 тысячи строк, так перегружают память
    не такой уж и большой датасет то...

    или перегрузка памяти идёт непосредственно при экспорте?
  • отредактировано 20:12
    ЕЩЁ одно важное замечание


    отчёт отъезжает только на сервере!
    т.е. на другой машине с более простыми ресурсами отчёт работает нормально, это может быть связано со bpl файлами фастрипорта? (давным давно я помоему эти файлы кудал куда то в системную диру, как было написано в инструкции)
    но а т.к. проект я делаю на своём локальном компьютере, я недавно обновил фр , теперь я использую ещё с версию 47, но на сервер я ставил какие то файлы от версии 30.
    это может быть как то связано? может на сервере тоже что-то надо обновить?

    это наверное вопрос к суппорту больше.
  • отредактировано 20:12
    int9 написал: »
    А как можно всё таки получить этот прайс лист?

    где утекает память? я что то не могу понять почему 33 тысячи строк, так перегружают память
    не такой уж и большой датасет то...

    или перегрузка памяти идёт непосредственно при экспорте?
    Это вопрос скорее к Вам, т.к. Вам намного легче проверить это, запустив приложение с простым PrepareReport без экспорта.
    Так же попробуйте включить кэширование в файл TfrxReport.EngineOptions.UseFileCache := true.
    int9 написал: »
    ЕЩЁ одно важное замечание
    отчёт отъезжает только на сервере!
    т.е. на другой машине с более простыми ресурсами отчёт работает нормально, это может быть связано со bpl файлами фастрипорта? (давным давно я помоему эти файлы кудал куда то в системную диру, как было написано в инструкции)
    но а т.к. проект я делаю на своём локальном компьютере, я недавно обновил фр , теперь я использую ещё с версию 47, но на сервер я ставил какие то файлы от версии 30.
    это может быть как то связано? может на сервере тоже что-то надо обновить?

    это наверное вопрос к суппорту больше.
    Если приложение собрано с использование bpl (динамическая линковка пакетов), то проблема может быть в этом (хотя по большему счету, приложение бы просто упало, т.к. большинство интерфейсов изменились).
  • xlaalaaxlaalaa Минск
    отредактировано 20:12
    int9 написал: »
    ЕЩЁ одно важное замечание
    отчёт отъезжает только на сервере!
    т.е. на другой машине с более простыми ресурсами отчёт работает нормально, это может быть связано со bpl файлами фастрипорта? (давным давно я помоему эти файлы кудал куда то в системную диру, как было написано в инструкции)
    но а т.к. проект я делаю на своём локальном компьютере, я недавно обновил фр , теперь я использую ещё с версию 47, но на сервер я ставил какие то файлы от версии 30.
    это может быть как то связано? может на сервере тоже что-то надо обновить?

    это наверное вопрос к суппорту больше.

    А вы попробуйте запротоколировать все подозрительные Pascal-модули. Например с помощью библиотеки SmartInspect http://www.gurock.com/smartinspect/ или CodeSite http://www.raize.com/DevTools/CodeSite/Default.asp. Обе библиотеки в редактор дельфи добавляют функцию, с помощью которой можно быстро по всему Pascal-исходнику расстаивть запись в лог. Обе библиотеки содержат средства для наблюдения в живую за процессами записывающими лог на удаленном компьютере.

    По протоколам быстро поймете на чем происходит запинка.
  • LOGic_BBSLOGic_BBS Казань
    отредактировано 20:12
    Извините и простите меня, за ответ не по теме.

    Но если мне как покупателю, дали прайс-лист на 33 тыс.позиций, врятли я бы там что-то купил, ну если очень бы только приперло.
  • xlaalaaxlaalaa Минск
    отредактировано December 2009
    LOGic_BBS написал: »
    Извините и простите меня, за ответ не по теме.

    Но если мне как покупателю, дали прайс-лист на 33 тыс.позиций, врятли я бы там что-то купил, ну если очень бы только приперло.

    К стати. В некоторых организациях, есть правило делать твердую копию всех данных из БД. Для этого все документы все справочники и прочие данные распечатывают на бумаге. Прошивают в огромные томы, опечатывают и хранят определенное количество лет в хранилищах.

    Задача печати огромных отчетов, для генератора отчета абсолютно реальная.
  • LOGic_BBSLOGic_BBS Казань
    отредактировано 20:12
    xlaalaa написал: »
    К стати. В некоторых организациях, есть правило делать твердую копию всех данных из БД. Для этого все документы все справочники и прочие данные распечатывают на бумаге. Прошивают в огромные томы, опечатывают и хранят определенное количество лет в хранилищах.

    Задача печати огромных отчетов, для генератора отчета абсолютно реальная.

    Ну может быть я не правильно донес идею.
    Для печати огромных отчетов FR самое то, и с утечкой памяти, были у него проблемы, но насколько я знаю, они устранены. Сейчас, для интереса, сам создал отчет на 65т. строк и экспортировал в Microsoft Office Excel 2003, без проблем. Наверное, нужно смотреть железо и софт.

    Речь шала о ПРАЙС-Листе, как я понимаю, он нужен покупателю или монагеру по продажам. Не тому не другому не удобен такой прайс-лист. Может быть, нужно создать 10 прайс-листов, но тематически разбитых.
    Ну или этот «прайс-лист» назовите Каталогом, тогда я могу понять почему в нем 33 т.записей.

    Насчет, перевода базы данных в бумажный эквивалент, IHMO идея не умная. Нам, например, хватает места только для хранения в бумажном виде только отчетности, и то в притык.

    PS: Uninstall FastReport - спаси лес.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.