Вопрос с подключением к БД

отредактировано 12:35 Раздел: FastReport 4.0
Доброго времени суток.
Используется 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));




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

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