Set Crystal Database Configuration
Following my previous post for printing a Crystal Report file connected to Oracle, this is a more generic GetConnectionInfo function which support three databases: Access, SQL and ORACLE
Again what needs to be changed is highlighted in bold text.
Private Function GetConnectionInfo(ByVal config As Business.Configuration) As CrystalDecisions.Shared.ConnectionInfo
Dim dbAttributes As CrystalDecisions.Shared.DbConnectionAttributes
Dim crConnectionInfo As CrystalDecisions.Shared.ConnectionInfo = Nothing
Select Case config.DatabaseType
Case Common.EnterpriseLibrary.Data.DatabaseType.Access
Dim reportFullPath As String = String.Concat(config.ReportsPath, “\”, “DatabaseName“)
If Not System.IO.File.Exists(reportFullPath) Then
Throw New ApplicationException(String.Format(“The report [{0}] does not exist”, reportFullPath))
End If
‘use DAO instead of ADO
’setup the attributes for the connection
dbAttributes = New CrystalDecisions.Shared.DbConnectionAttributes
dbAttributes.Collection.Set(“Data Source”, “ReportFullPath“)
dbAttributes.Collection.Set(“Database Type”, “Access”)
’setup the connection
crConnectionInfo = New CrystalDecisions.Shared.ConnectionInfo
crConnectionInfo.LogonProperties.Clear()
crConnectionInfo.Attributes.Collection.Clear()
crConnectionInfo.DatabaseName = “”
crConnectionInfo.ServerName = “ReportFullPath“
crConnectionInfo.UserID = “ReportsUserName“
crConnectionInfo.Password = “ReportsPassword“
crConnectionInfo.Attributes.Collection.Set(“Database DLL”, “crdb_dao.dll”)
crConnectionInfo.Attributes.Collection.Set(“QE_DatabaseName”, reportFullPath)
crConnectionInfo.Attributes.Collection.Set(“QE_DatabaseType”, “Access/Excel (DAO)”)
crConnectionInfo.Attributes.Collection.Set(“QE_LogonProperties”, dbAttributes)
crConnectionInfo.Attributes.Collection.Set(“QE_ServerDescription”, reportFullPath)
crConnectionInfo.Attributes.Collection.Set(“QE_SQLDB”, True)
crConnectionInfo.Attributes.Collection.Set(“SSO Enabled”, False)
crConnectionInfo.LogonProperties = dbAttributes.Collection
Case Common.EnterpriseLibrary.Data.DatabaseType.Oracle
’setup the attributes for the connection
dbAttributes = New CrystalDecisions.Shared.DbConnectionAttributes
dbAttributes.Collection.Set(“Server”, “OracleServiceName“)
dbAttributes.Collection.Set(“Trusted_Connection”, False)
’setup the connection
crConnectionInfo = New CrystalDecisions.Shared.ConnectionInfo
crConnectionInfo.LogonProperties.Clear()
crConnectionInfo.Attributes.Collection.Clear()
crConnectionInfo.DatabaseName = “”
crConnectionInfo.ServerName = “OracleServiceName“
crConnectionInfo.UserID = “ReportsUserName“
crConnectionInfo.Password = “ReportsPassword”
crConnectionInfo.Attributes.Collection.Set(“Database DLL”, “crdb_oracle.dll”)
crConnectionInfo.Attributes.Collection.Set(“QE_DatabaseName”, “”)
crConnectionInfo.Attributes.Collection.Set(“QE_DatabaseType”, “Oracle Server”)
crConnectionInfo.Attributes.Collection.Set(“QE_LogonProperties”, dbAttributes)
crConnectionInfo.Attributes.Collection.Set(“QE_ServerDescription”, config.ServerName)
crConnectionInfo.Attributes.Collection.Set(“QE_SQLDB”, True)
crConnectionInfo.Attributes.Collection.Set(“SSO Enabled”, False)
crConnectionInfo.LogonProperties = dbAttributes.Collection
Case Common.EnterpriseLibrary.Data.DatabaseType.SqlServer
’setup the attributes for the connection
dbAttributes = New CrystalDecisions.Shared.DbConnectionAttributes
dbAttributes.Collection.Set(“Auto Translate”, “-1″)
dbAttributes.Collection.Set(“Connect Timeout”, “15″)
dbAttributes.Collection.Set(“Data Source”, “SqlServerName“)
dbAttributes.Collection.Set(“General Timeout”, “0″)
dbAttributes.Collection.Set(“Initial Catalog”, “DatabaseName“)
dbAttributes.Collection.Set(“Integrated Security”, False)
dbAttributes.Collection.Set(“Locale Identifier”, “5129″)
dbAttributes.Collection.Set(“OLE DB Services”, “-5″)
dbAttributes.Collection.Set(“Provider”, “SQLOLEDB”)
dbAttributes.Collection.Set(“Tag with column collation when possible”, “0″)
dbAttributes.Collection.Set(“Use DSN Default Properties”, False)
dbAttributes.Collection.Set(“Use Encryption for Data”, “0″)
’setup the connection
crConnectionInfo = New CrystalDecisions.Shared.ConnectionInfo
crConnectionInfo.LogonProperties.Clear()
crConnectionInfo.Attributes.Collection.Clear()
crConnectionInfo.DatabaseName = “DatabaseName“
crConnectionInfo.ServerName = “SqlServerName“
crConnectionInfo.UserID = “ReportsUserName“
crConnectionInfo.Password = “ReportsPassword”
crConnectionInfo.Attributes.Collection.Set(“Database DLL”, “crdb_ado.dll”)
crConnectionInfo.Attributes.Collection.Set(“QE_DatabaseName”, config.DatabaseName)
crConnectionInfo.Attributes.Collection.Set(“QE_DatabaseType”, “OLE DB (ADO)”)
crConnectionInfo.Attributes.Collection.Set(“QE_LogonProperties”, dbAttributes)
crConnectionInfo.Attributes.Collection.Set(“QE_ServerDescription”, config.ServerName)
crConnectionInfo.Attributes.Collection.Set(“QE_SQLDB”, True)
crConnectionInfo.Attributes.Collection.Set(“SSO Enabled”, False)
crConnectionInfo.LogonProperties = dbAttributes.Collection
Case Else
Throw New ApplicationException(“Unknown Database”)
End Select
Return crConnectionInfo
End Function