Quantcast
Channel: SCN : Discussion List - SAP Crystal Reports, version for Visual Studio
Viewing all articles
Browse latest Browse all 3636

VS2010 +OutOfMemoryException (SetTableLocation and Replace Connection methods failed)

$
0
0

We created a windows based application with Virsual studio 2010 & Crystal Report & NET Framework 4.

During

objRpt.SetDataSource(ds.Tables(0))

OutOfMemoryException was thrown . The table is too big. I saved DS to xml and tried to use RAS to SetTableLocation.

The code works fine on some projects  but on the big one  throwing an error out:

"Logon failed.

Error in File temp_1708867f-4479-4904-8666-456b84fa2d63 {CD095C31-6A80-4412-B4E2-C11B2DCDE359}.rpt:

Unable to connect: incorrect log on parameters."

 

I tried to use Replace Connection method (below) but it did not work for me.

"Error in File temp_...rpt:

Invalis section."

What am i doing wrong?

Please help. Thanks in advance

 

SetTableLocation code

 

    Private Sub getXML(ByVal m_boReportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument, ByVal dtb As System.Data.DataTable)
      

Dim m_boReportClientDocument As ISCDReportClientDocument
        m_boReportClientDocument = m_boReportDocument.ReportClientDocument
        Dim m_boConnectionInfo As ConnectionInfo
        Dim m_boAttributes As New PropertyBag()
        Dim m_boLogonInfo As New PropertyBag()
        Dim m_boTable As CrystalDecisions.ReportAppServer.DataDefModel.Table
        Dim tempFileName = "c:\a.xml"
        dtb.WriteXml(tempFileName, XmlWriteMode.WriteSchema)
        m_boLogonInfo.Add("XML File Path", tempFileName)
        m_boLogonInfo.Add("Internal Connection ID", "{680eee31-a16e-4f48-8efa-8765193dccdd}")
        m_boAttributes.Add("QE_DatabaseName", "")
        m_boAttributes.Add("Database DLL", "crdb_adoplus.dll")
        m_boAttributes.Add("QE_DatabaseType", "ADO.NET (XML)")
        m_boAttributes.Add("QE_ServerDescription", "NewDataSet")
        m_boAttributes.Add("QE_LogonProperties", m_boLogonInfo)
        m_boAttributes.Add("QE_SQLDB", "False")
        m_boAttributes.Add("SSO Enabled", "False")
        m_boConnectionInfo = New ConnectionInfo()
        m_boConnectionInfo.Attributes = m_boAttributes
        m_boConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE
        Dim boTables As CrystalDecisions.ReportAppServer.DataDefModel.Tables
        boTables = m_boReportClientDocument.DatabaseController.Database.Tables
        m_boTable = New CrystalDecisions.ReportAppServer.DataDefModel.Table()
        m_boTable.ConnectionInfo = m_boConnectionInfo
        m_boTable.Name = dtb.TableName.ToString
        m_boReportClientDocument.DatabaseController.SetTableLocation(boTables(0), m_boTable)


        m_boReportClientDocument.VerifyDatabase()

End Sub

 

Replace Connection code:

   Private Sub getXML1(ByVal m_boReportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument, ByVal dtb As System.Data.DataTable)
        Dim m_boReportClientDocument As ISCDReportClientDocument
        m_boReportClientDocument = m_boReportDocument.ReportClientDocument
        Dim oldConnInfo As CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo
        Dim oldConnInfos As CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfos
        oldConnInfos = m_boReportClientDocument.DatabaseController.GetConnectionInfos(Nothing)

        Dim m_boConnectionInfo As ConnectionInfo
        Dim m_boAttributes As New PropertyBag()
        Dim m_boLogonInfo As New PropertyBag()
        Dim tempFileName = "c:\a.xml"
        dtb.WriteXml(tempFileName, XmlWriteMode.WriteSchema)
        m_boLogonInfo.Add("XML File Path", tempFileName)
        m_boAttributes.Add("QE_DatabaseName", "")
        m_boAttributes.Add("Database DLL", "crdb_adoplus.dll")
        m_boAttributes.Add("QE_DatabaseType", "ADO.NET (XML)")
        m_boAttributes.Add("QE_ServerDescription", "NewDataSet")
        m_boAttributes.Add("QE_LogonProperties", m_boLogonInfo)
        m_boAttributes.Add("QE_SQLDB", "False")
        m_boAttributes.Add("SSO Enabled", "False")
        m_boConnectionInfo = New ConnectionInfo()
        m_boConnectionInfo.Attributes = m_boAttributes
        m_boConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE

        For I As Integer = 0 To oldConnInfos.Count - 1
            oldConnInfo = oldConnInfos(I)
            m_boReportClientDocument.DatabaseController.ReplaceConnection(oldConnInfo, m_boConnectionInfo, Nothing, CrystalDecisions.ReportAppServer.DataDefModel.CrDBOptionsEnum.crDBOptionDoNotVerifyDB)

         Next

        End Sub


Viewing all articles
Browse latest Browse all 3636

Trending Articles