TfrxDataBase
описываю ситуацию:
1. Есть два сервера БД(и два файл-сервера на которых хранятся отчеты). Тестовый и боевой (расположены удаленно друг от друга) все отчеты делаються и тестируются на данных тестового(естественно) сервера
2. В отчетах есть TfrxADODataBase свойство DataBaseName передается из основной программы через глобальную пользовательскую функцию вот так(скрипт отчета)
3. В момент разработки отчета я "ручками" задаю это свойство(коннект к тестовому серверу). После того как отчет готов(хоть в каком либо варианте) сбрасываю это свойство и сохраняю отчет.
4. Переношу файл отчета на боевой сервер.
5. в программе примерно следующим образом выполняется отчет
доступ с рабочих мест к тест-серверы БД не постоянный и когда он пропадает, при попытки постоить отчет выскакивает ошибка о невозможности подключения к Тест-серверу. В самом файле отчетов информации о коннекте к этому серверу нет (вот кусок *.fr3)
Вопрос(ы) в следующем. Где храниться информация о "старом" коннекте? Как от нее(информации) избавиться?
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"/>
Вопрос(ы) в следующем. Где храниться информация о "старом" коннекте? Как от нее(информации) избавиться?
Комментарии
Проблема возникает даже при вызове дизайнера. Проявляются в долгом (около 15-20 сек) зависании программы и последующем открытии дизайнера.
При наличии коннекта дизайнер открывается почти мгновенно.
Во-первых: при возобнавлении связи запускал отчеты на боевом сервере, конектов к тест-сервру небыло(мониторил активность на севере).
Во-вторых: как оказалось в момент прерывания связи почему-то(ну тут уж пусть админы разбираються) затруднялся доступ (многим пользователям довал отлуп) к файл серверу на котором в том числе хранились файлы отчетов.
PS
Извеняюсь за "паникерские" посты.