Login Failed in Crystal Report with Sub Report and each with 2 Connections

Discussion in 'ASP .Net Web Controls' started by Ashish Mehndi, Aug 2, 2004.

  1. I have created a Report with a Subreport and both have 2 connection
    informations. Viz. Main Report has 2 connection - 1 connection to
    datasource using Stored Procedure (SQL Server) and second connection to
    datasource which provides fields based upon Language selected say
    english, spanish etc. so we have one seprate Language Database. Similar
    is the case with Sub Report. Now when I am passing the connection info
    as shown below in Steps to Reproduce, then 1st page gets displayed
    perfectly but clicking on the second page gives the Login Failed Error,
    but if i have only 1 connection in both main report and sub report the
    same code works fine. Is there any resolution to this???


    ERROR____________________________________________________________-
    Server Error in '/Reports' Application.
    ------------------------------------------------------------------------
    --------

    Logon failed. Details: 28000:[Microsoft][ODBC SQL Server Driver][SQL
    Server]Login failed for user 'demodb_cds'. Error in File
    C:\WINDOWS\TEMP\{6384703C-1EDA-4AA8-95CF-84C30EB995E8}.rpt: Unable to
    connect: incorrect log on parameters.
    Description: An unhandled exception occurred during the execution of the
    current web request. Please review the stack trace for more information
    about the error and where it originated in the code.

    Exception Details: System.Runtime.InteropServices.COMException: Logon
    failed. Details: 28000:[Microsoft][ODBC SQL Server Driver][SQL
    Server]Login failed for user 'demodb_cds'. Error in File
    C:\WINDOWS\TEMP\{6384703C-1EDA-4AA8-95CF-84C30EB995E8}.rpt: Unable to
    connect: incorrect log on parameters.

    Source Error:

    An unhandled exception was generated during the execution of the current
    web request. Information regarding the origin and location of the
    exception can be identified using the exception stack trace below.

    Stack Trace:


    [COMException (0x8004100f): Logon failed.
    Details: 28000:[Microsoft][ODBC SQL Server Driver][SQL Server]Login
    failed for user 'demodb_cds'.
    Error in File
    C:\WINDOWS\TEMP\{6384703C-1EDA-4AA8-95CF-84C30EB995E8}.rpt:
    Unable to connect: incorrect log on parameters.]
    CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetPage(P
    ageRequestContext pPageRequestContext) +0
    CrystalDecisions.ReportSource.EromReportSourceBase.GetPage(PageRequestCo
    ntext pageReqContext)

    [LogOnException: Logon failed.
    Details: 28000:[Microsoft][ODBC SQL Server Driver][SQL Server]Login
    failed for user 'demodb_cds'.
    Error in File
    C:\WINDOWS\TEMP\{6384703C-1EDA-4AA8-95CF-84C30EB995E8}.rpt:
    Unable to connect: incorrect log on parameters.]
    CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetExceptio
    n(Exception e)
    CrystalDecisions.ReportSource.EromReportSourceBase.GetPage(PageRequestCo
    ntext pageReqContext)
    CrystalDecisions.CrystalReports.Engine.FormatEngine.GetPage(PageRequestC
    ontext reqContext)
    CrystalDecisions.ReportSource.LocalReportSourceBase.GetPage(PageRequestC
    ontext pageReqContext)
    CrystalDecisions.Web.ReportAgent.(Boolean i)
    CrystalDecisions.Web.CrystalReportViewer.OnPreRender(EventArgs e)
    System.Web.UI.Control.PreRenderRecursiveInternal()
    System.Web.UI.Control.PreRenderRecursiveInternal()
    System.Web.UI.Control.PreRenderRecursiveInternal()
    System.Web.UI.Page.ProcessRequestMain()


    CODE___________________________________________________________________
    Page_Init()

    If TypeOf Session.Item("CESession") Is Object Then
    ceSession = Session.Item("CESession")
    Else
    If LoginCrystalEnterprise(ConfigurationSettings.AppSettings("Username"),
    ConfigurationSettings.AppSettings("Password"),
    ConfigurationSettings.AppSettings("CmsServer"),
    ConfigurationSettings.AppSettings("AuthenticationType")) Then
    ceSession = Session.Item("CESession")
    End If
    End If

    reportDoc.EnterpriseSession = ceSession
    reportDoc.FileName = ConfigurationSettings.AppSettings("Uri") &
    GetReportId(reportSource, reportDoc.EnterpriseLogonInfo.Username,
    reportDoc.EnterpriseLogonInfo.Password,
    reportDoc.EnterpriseLogonInfo.CmsServer,
    reportDoc.EnterpriseLogonInfo.AuthenticationType)

    Call CreateParameterFieldsDirect(returnParameters, reportDoc)

    For Each objSection In reportDoc.ReportDefinition.Sections
    For Each objReportObject In objSection.ReportObjects
    If objReportObject.Kind = ReportObjectKind.SubreportObject Then
    Dim objDatabaseSubreport As
    CrystalDecisions.CrystalReports.Engine.Database
    Dim objTablesSubreport As CrystalDecisions.CrystalReports.Engine.Tables
    Dim objTableLogonInfoSubreport As CrystalDecisions.Shared.TableLogOnInfo
    Dim objTableSubreport As CrystalDecisions.CrystalReports.Engine.Table
    Dim objCrystalConnectionInfoSubreport As CrystalConnectionInformation

    Try
    objSubReportObject = CType(objReportObject, SubreportObject)
    subreportDoc =
    objSubReportObject.OpenSubreport(objSubReportObject.SubreportName)
    objDatabaseSubreport = subreportDoc.Database
    objTablesSubreport = objDatabaseSubreport.Tables
    For Each objTableSubreport In objTablesSubreport
    objTableLogonInfoSubreport = objTableSubreport.LogOnInfo
    objCrystalConnectionInfoSubreport =
    objHashTable.Item(objTableSubreport.Name.ToLower)
    Dim objConnectionInfoSubreport As New
    CrystalDecisions.Shared.ConnectionInfo
    objConnectionInfoSubreport.ServerName =
    objCrystalConnectionInfoSubreport.ServerName
    objConnectionInfoSubreport.UserID =
    objCrystalConnectionInfoSubreport.UserId
    objConnectionInfoSubreport.DatabaseName =
    objCrystalConnectionInfoSubreport.DatabaseName
    objConnectionInfoSubreport.Password =
    objCrystalConnectionInfoSubreport.Password
    objTableLogonInfoSubreport.ConnectionInfo = objConnectionInfoSubreport
    System.Threading.Thread.CurrentThread.Sleep(waitTime)
    objTableSubreport.ApplyLogOnInfo(objTableLogonInfoSubreport)
    System.Threading.Thread.CurrentThread.Sleep(waitTime)
    'intCounter = 0
    'objTableSubreport.ApplyLogOnInfo(objTableLogonInfoSubreport)
    'System.Threading.Thread.CurrentThread.Sleep(waitTime)
    'While (Not objTableSubreport.TestConnectivity()) And (intCounter <
    ConfigurationSettings.AppSettings("maxConnectionCounter"))
    'System.Threading.Thread.CurrentThread.Sleep(waitTime)
    'intCounter += 1
    'End While

    If Not objTableSubreport.TestConnectivity() Then
    Throw New ApplicationException("Unable to Connect Table:" &
    objTableSubreport.Name & " Connection Info:" &
    objConnectionInfoSubreport.ServerName)
    End If
    Next
    Finally
    objDatabaseSubreport = Nothing
    objTablesSubreport = Nothing
    objTableLogonInfoSubreport = Nothing
    objTableSubreport = Nothing
    objCrystalConnectionInfoSubreport = Nothing
    End Try
    End If
    Next
    Next

    objDatabase = reportDoc.Database
    objTables = objDatabase.Tables

    For Each objTable In objTables
    objTableLogonInfo = objTable.LogOnInfo
    objCrystalConnectionInfo = objHashTable.Item(objTable.Name.ToLower)
    Dim objConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo
    objConnectionInfo.ServerName = objCrystalConnectionInfo.ServerName
    objConnectionInfo.UserID = objCrystalConnectionInfo.UserId
    objConnectionInfo.DatabaseName = objCrystalConnectionInfo.DatabaseName
    objConnectionInfo.Password = objCrystalConnectionInfo.Password
    objTableLogonInfo.ConnectionInfo = objConnectionInfo
    System.Threading.Thread.CurrentThread.Sleep(waitTime)
    objTable.ApplyLogOnInfo(objTableLogonInfo)
    System.Threading.Thread.CurrentThread.Sleep(waitTime)
    intCounter = 0
    'objTable.ApplyLogOnInfo(objTableLogonInfo)
    'System.Threading.Thread.CurrentThread.Sleep(waitTime)
    'While (Not objTable.TestConnectivity()) And (intCounter <
    ConfigurationSettings.AppSettings("maxConnectionCounter"))
    'System.Threading.Thread.CurrentThread.Sleep(waitTime)
    'intCounter += 1
    'End While

    If Not objTable.TestConnectivity() Then
    Throw New ApplicationException("Unable to Connect Table:" &
    objTable.Name & " Connection Info:" & objConnectionInfo.ServerName)
    End If
    Next

    crystalReportViewer.DataBind()




    *** Sent via Developersdex http://www.developersdex.com ***
    Don't just participate in USENET...get rewarded for it!
     
    Ashish Mehndi, Aug 2, 2004
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Michelle Stone
    Replies:
    0
    Views:
    1,318
    Michelle Stone
    Jan 9, 2004
  2. Ben
    Replies:
    2
    Views:
    910
  3. Tony Johansson
    Replies:
    3
    Views:
    16,269
    Patrice
    Jan 2, 2010
  4. Lawrence D'Oliveiro

    Death To Sub-Sub-Sub-Directories!

    Lawrence D'Oliveiro, May 5, 2011, in forum: Java
    Replies:
    92
    Views:
    2,062
    Lawrence D'Oliveiro
    May 20, 2011
  5. Comfort
    Replies:
    0
    Views:
    565
    Comfort
    Oct 18, 2004
Loading...

Share This Page