Открытие конекта к БД через скрипты
Использую свои компоненты для доступа к БД.
Установления свойства
При открытии отчёта всё работает на ура, но проблемы начинаются при открытии редактора, дело в том, что
Сейчас в RunTime выполняю
На что может повлиять DestroyForms? могут-ли из-за этого возникнуть не приятные эффекты?
Установления свойства
Connected := True
вызывает ошибку, т.к. параметры конекта указываются после и на момент установки свойства ещё не загружены. По этой причине открытие конекта вешаю на вызов скриптов
begin DB2Database1.Connected:=True;
end.
.При открытии отчёта всё работает на ура, но проблемы начинаются при открытии редактора, дело в том, что
// unit frxClass line 8627
function TfrxReport.PrepareReport(ClearLastReport: Boolean = True): Boolean;
...
try
if Assigned(FOnBeginDoc) then
FOnBeginDoc(Self);
if PrepareScript then
begin
{$IFNDEF FR_VER_BASIC}
if FScript.Statement.Count > 0 then
FScript.Execute; // <--- вот здесь происходит вызов скриптов, т.е. коннект к базе устанавливается
{$ENDIF}
...
if FEngineOptions.DestroyForms then
begin
ErrorsText := FErrors.Text;
TempStream.Position := 0;
FReloading := True;
try
// if FEngineOptions.ReportThread = nil then
LoadFromStream(TempStream); // <--- здесь происходит перезагрузка отчёта, т.е. старый прибивается вместе с коннектом, и загружается новый
// но т.к. вызова скрипта не происходит конект не поднимается
finally
FReloading := False;
ReportOptions.Password := SavePwd;
end;
TempStream.Free;
FErrors.Text := ErrorsText;
end;
end;
...
end;
В результате при открытии в редакторе валятся ошибки конектаСейчас в RunTime выполняю
DestroyForms := False;
заработало вроде...На что может повлиять DestroyForms? могут-ли из-за этого возникнуть не приятные эффекты?
Комментарии
Помогло изменение последовательности обявлений свойcтв для класса TfrxXXXDatabase.
Например: Свойство Connected в конце.
После этого ошибка перестала появляться.