Вопрос с подключением к БД
Доброго времени суток.
Используется Fast Report for COM/ActiveX
Версия Fast Report 4.9.255
ActiveX компонент подключается в приложение написанное на MSVS 2010, С++ (не managed)
Приложение имеет свое соединение с БД и хранит строку соединения в своих настройках. Хотелось бы при создании отчета заранее добавить на вкладку Data TfrxADODatabase компонент с прописанным соединением с БД и преднастроенные запросы, связанные с этой БД.
Встал вопрос - как разместить созданный программно TfrxADODatabase в отчете?
Метод TfrxReport::SelectDataSet для TfrxADODatabase не работает - возвращает E_FAIL.
Пробовал так:
И еще один момент:
Если в шаблоне отчета заранее разместить компонент с фиксированным именем - то при загрузке отчета он нормально находится через FindObject и соединение с БД прописывается из приложения, в запросах видны поля. При вызове предпросмотра - отчет строится, но после выхода из этого режима, запросы созданные программно теряют связь с БД. Если запрос создать в дизайнере и связать с БД - то такой проблемы не наблюдается - что-то упустил при создании запроса?
Запрос создается так:
Используется Fast Report for COM/ActiveX
Версия Fast Report 4.9.255
ActiveX компонент подключается в приложение написанное на MSVS 2010, С++ (не managed)
Приложение имеет свое соединение с БД и хранит строку соединения в своих настройках. Хотелось бы при создании отчета заранее добавить на вкладку Data TfrxADODatabase компонент с прописанным соединением с БД и преднастроенные запросы, связанные с этой БД.
Встал вопрос - как разместить созданный программно TfrxADODatabase в отчете?
Метод TfrxReport::SelectDataSet для TfrxADODatabase не работает - возвращает E_FAIL.
Пробовал так:
IfrxADODatabasePtr pDatabase;
pDatabase.CreateInstance(__uuidof(TfrxADODatabase));
m_Report->SelectDataset(true, IfrxDataSetPtr(pDatabase));
Связанные с этой БД запросы добавляются нормально через SelectDataset. Но при открытии дизайнера отчета они не связаны с БД.И еще один момент:
Если в шаблоне отчета заранее разместить компонент с фиксированным именем - то при загрузке отчета он нормально находится через FindObject и соединение с БД прописывается из приложения, в запросах видны поля. При вызове предпросмотра - отчет строится, но после выхода из этого режима, запросы созданные программно теряют связь с БД. Если запрос создать в дизайнере и связать с БД - то такой проблемы не наблюдается - что-то упустил при создании запроса?
Запрос создается так:
IfrxADOQueryPtr pQuery;
pQuery.CreateInstance(__uuidof(TfrxADOQuery));
pQuery->Database = pDatabase;
pQuery->Name = _bstr_t("Name");
pQuery->Query = _bstr_t("Some SQL...");
m_Report->SelectDataset(true, IfrxDataSetPtr(pQuery));