Designer и ADO Table
У меня в программе есть ADOСonnection уже подключенная к БД.
Как передать эту БД в открываемый стандартный Designer
Делаю так:
var
Report: TfrxReport;
dbDataSet: TfrxDBDataSet;
ADOTable:TADOTable;
TableNamesList:TStrings;
i,imax:integer;
begin
Report := TfrxReport.Create(Application);
TableNamesList :=TStringList.Create;
ADOConnection.GetTableNames(TableNamesList);
imax:=TableNamesList.Count-1;
for i:=0 to imax do begin
ADOTable := TADOTable.Create(Report);
ADOTable.Connection := ADOConnection;
ADOConnection.ConnectionString;
ADOTable.TableName := TableNamesList;
dbDataSet:= TfrxDBDataSet.Create(Report);
dbDataSet.DataSet := ADOTable;
dbDataSet.Name:= TableNamesList;
dbDataSet.UserName:= TableNamesList;
Report.DataSets.Add(dbDataSet);
end;
Report.DesignReport;
end;
Вылетает ошибка "EAccessViolation....." и т.д.
Выяснил, что это происходит из Модуля frxDesgn в TfrxDesignerForm.FormCreate
на функции ReloadPages(0);
Как передать эту БД в открываемый стандартный Designer
Делаю так:
var
Report: TfrxReport;
dbDataSet: TfrxDBDataSet;
ADOTable:TADOTable;
TableNamesList:TStrings;
i,imax:integer;
begin
Report := TfrxReport.Create(Application);
TableNamesList :=TStringList.Create;
ADOConnection.GetTableNames(TableNamesList);
imax:=TableNamesList.Count-1;
for i:=0 to imax do begin
ADOTable := TADOTable.Create(Report);
ADOTable.Connection := ADOConnection;
ADOConnection.ConnectionString;
ADOTable.TableName := TableNamesList;
dbDataSet:= TfrxDBDataSet.Create(Report);
dbDataSet.DataSet := ADOTable;
dbDataSet.Name:= TableNamesList;
dbDataSet.UserName:= TableNamesList;
Report.DataSets.Add(dbDataSet);
end;
Report.DesignReport;
end;
Вылетает ошибка "EAccessViolation....." и т.д.
Выяснил, что это происходит из Модуля frxDesgn в TfrxDesignerForm.FormCreate
на функции ReloadPages(0);