Добрый день всем!
Пытаюсь освоить Crystal Rep.
Необходимо в программе изменять местоположение БД, заданное в
шаблоне отчета. Нашел несколько способов:
1)
for i = 1 to Report.Database.Tables.Count
Report.Database.Tables.Item(i).SetLogOnInfo (pServerName As String, [pDatabaseName], [pUserID], [pPassword])
2)
Report.Database.LogOnServer(pDllName As String, pServerName As String, [pDatabaseName], [pUserID], [pPassword])
3)Report.Database.LogOnServerEx(...)
Использую 3):
pApplication.CreateInstance(__uuidof(Application));
pReport = pApplication->OpenReport(ReportPath);
pReport->get_Database((IDatabase**) &pDatabase);
pReport->Database->LogOnServerEx("pdsoledb.dll", "server", "db", "user", "pwd", "SQLOLEDB", "Provider=SQLOLEDB;"
"Data Source=server;"
"User ID=user;"
"Password=pwd;" "Initial Catalog=db;" "Current Language=Russian");
m_crystrepview.SetReportSource(pReport);
m_crystrepview.ViewReport();
при запуске приложения отчет призадумывается, а потом выдает сообщение
"Server has not yet been opened"
Помогите с проблемкой!!!
Здравствуйте Ворогушин Дмитрий, Вы писали:
ВД>Добрый день всем!
ВД>Пытаюсь освоить Crystal Rep.
ВД>Необходимо в программе изменять местоположение БД, заданное в
ВД>шаблоне отчета. Нашел несколько способов:
...skip...
ВД>при запуске приложения отчет призадумывается, а потом выдает сообщение
ВД>"Server has not yet been opened"
ВД>Помогите с проблемкой!!!
Да, документация у них большая по объему и никакая по содержанию.
У меня коннект к MSSQL серверу через OLE DB выглядит так:
m_Application->LogOnServerEx("pdsoledb.dll", // DLL Name
_bstr_t(__argv[1]), // Server
_variant_t(__argv[2]), // Database
_variant_t(__argv[3]), // Login
_variant_t(__argv[4]), // Password
_variant_t("MSSQL"), // Server Type
_variant_t("Provider=SQLOLEDB.1")); // Connection String