TfrxDataBase

LexLex
отредактировано March 2007 Раздел: FastReport 3.0
описываю ситуацию:
1. Есть два сервера БД(и два файл-сервера на которых хранятся отчеты). Тестовый и боевой (расположены удаленно друг от друга) все отчеты делаються и тестируются на данных тестового(естественно) сервера
2. В отчетах есть TfrxADODataBase свойство DataBaseName передается из основной программы через глобальную пользовательскую функцию вот так(скрипт отчета)
begin
  adocReport.Connected := False; // навсякий случай
  adocReport.DatabaseName := ConnectionString; // глобальная пользовательская функция 
  adocReport.Connected := True;
end.

3. В момент разработки отчета я "ручками" задаю это свойство(коннект к тестовому серверу). После того как отчет готов(хоть в каком либо варианте) сбрасываю это свойство и сохраняю отчет.
4. Переношу файл отчета на боевой сервер.
5. в программе примерно следующим образом выполняется отчет
  with TfrxReport.Create(self) do
    try
      LoadFromFile(ReportPath+'ControlFullLabel.fr3');
      PreviewOptions.Buttons := [pbPrint, pbExport, pbZoom, pbNavigator, pbExportQuick];
      Variables.Variables['TravelUnit_ID'] := TU_ID;
      case isDesign of // предпросмотр, печать, дизайнер(доступен только разработчикам)
        prnmDesign:
          DesignReport;
        prnmPrint:
          if PrepareReport then
            Print;
        else
          if PrepareReport then
            ShowPreparedReport;
      end;
    finally
      Free;
    end

доступ с рабочих мест к тест-серверы БД не постоянный и когда он пропадает, при попытки постоить отчет выскакивает ошибка о невозможности подключения к Тест-серверу. В самом файле отчетов информации о коннекте к этому серверу нет (вот кусок *.fr3)
<TfrxADODatabase Name="adocReport" LoginPrompt="False"/>

Вопрос(ы) в следующем. Где храниться информация о "старом" коннекте? Как от нее(информации) избавиться?

Комментарии

  • gpigpi
    отредактировано 12:49
    А при таком коде, что возвращает ConnectionString?
    begin
     adocReport.Connected := False; // навсякий случай
     adocReport.DatabaseName := ConnectionString; // глобальная пользовательская функция 
     showmessage(ConnectionString);
     adocReport.Connected := True;
    end.
    
  • LexLex
    отредактировано 12:49
    Функция взвращяет правильный коннект (данные показываются с боевого сервера).

    Проблема возникает даже при вызове дизайнера. Проявляются в долгом (около 15-20 сек) зависании программы и последующем открытии дизайнера.
    При наличии коннекта дизайнер открывается почти мгновенно.
  • gpigpi
    отредактировано 12:49
    Выложите шаблон отчёта
  • LexLex
    отредактировано March 2007
    Детальное раследование показало, что скоре всего небыло доступа к файлам отчета а не к тест-серверу БД.


    Во-первых: при возобнавлении связи запускал отчеты на боевом сервере, конектов к тест-сервру небыло(мониторил активность на севере).
    Во-вторых: как оказалось в момент прерывания связи почему-то(ну тут уж пусть админы разбираються) затруднялся доступ (многим пользователям довал отлуп) к файл серверу на котором в том числе хранились файлы отчетов.


    PS
    Извеняюсь за "паникерские" посты.

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

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