我正在使用Crystal Reports for Eclipse,并且有一个设置为使用MS SQL JDBC驱动程序的报告。该报告已设置为使用可信连接,并在实际Crystal Reports XI设计器中不提示输入用户名和密码。相反,它使用我的Windows凭据连接到数据库服务器并检索数据。
出于某种原因,当我在我的Java应用程序中打开此报告时,它希望我登录到数据源。我知道我可以使用sql server身份验证手动设置登录,但我们的应用可能需要根据用户偏好使用内置的集成安全性。
我的代码基本上是这样的:
ReportClientDocument report = new ReportClientDocument();
report.setReportAppServer(ReportClientDocument.inprocConnectionString);
report.open ('Path to some report here', OpenReportOptions._openAsReadOnly);
所有使用ReportViewerBean在JFrame中完成。
下面是一个列表,显示了我从报告数据库控制器连接信息的属性包中获取的报告文件的当前属性。
连接的Trusted connection属性设置为true,用户名和密码均为空。
连接信息属性
用户名:
密码:
种类:SQL
连接信息属性属性
JDBC连接字符串:!com.microsoft.sqlserver.jdbc.SQLServerDriver!jdbc:sqlserver:// server \ instance!user = {userid}!password = {password}
Trusted_Connection:true
PreQEServerName:jdbc:sqlserver:// server \ instance
服务器类型:JDBC(JNDI)
数据库DLL:crdb_jdbc.dll
数据库:dbname
数据库类名:com.microsoft.sqlserver.jdbc.SQLServerDriver
使用JDBC:true
数据库名称:dbname
服务器名称:jdbc:sqlserver:// server \ instance
连接URL:jdbc:sqlserver:// server \ instance
服务器:server \ instance