Since I am creating a new report similar to an existing report, I made a copy of the existing rpt file and renamed it to the new report. Even though I ran the Verify Database function and it works fine in the designer. When I ran the report with my java code, I got the error shown at the end of the blog.
This error was fixed by
1. Assigning an alias to all aggregate columns in the select clause of the query.
max(columnA) as columnA, count(*) as totalNum
2. Making sure no parameters are included in the select clause of the query. If there is really no place to put a parameter, add it to the where clause like {?parameter1}={?parameter1}
2. adding the following line to my code after the data source and all the parameters are set.
reportClientDocument.verifyDatabase();
The exception:
ERROR JRCCommunicationAdapter - detected an exception: Failed to bind columns.
at com.crystaldecisions.reports.datafoundation.DFQuery.for(SourceFile:632)
at com.crystaldecisions.reports.datalayer.a.do(SourceFile:1621)
at com.crystaldecisions.reports.datalayer.a.a(SourceFile:1404)
at com.crystaldecisions.reports.dataengine.m.b(SourceFile:334)
at com.crystaldecisions.reports.dataengine.j.b(SourceFile:515)
at com.crystaldecisions.reports.dataengine.m.o(SourceFile:408)
at com.crystaldecisions.reports.dataengine.m.a(SourceFile:173)
at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:114)
at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:95)
at com.crystaldecisions.reports.dataengine.j.case(SourceFile:1080)
at com.crystaldecisions.reports.dataengine.h.<init>(SourceFile:108)
at com.crystaldecisions.reports.dataengine.DataContext.a(SourceFile:254)
at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4660)
at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4574)
at com.crystaldecisions.reports.dataengine.DataProcessor2.new(SourceFile:2652)
at com.crystaldecisions.reports.dataengine.DataProcessor2.byte(SourceFile:2610)
at com.crystaldecisions.reports.dataengine.DataProcessor2.try(SourceFile:2282)
at com.crystaldecisions.reports.dataengine.DataProcessor2.int(SourceFile:2442)
at com.crystaldecisions.reports.dataengine.DataProcessor2.I(SourceFile:1013)
at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.fo(SourceFile:526)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.if(SourceFile:613)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.a(SourceFile:578)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.X(SourceFile:387)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.moveToPageN(SourceFile:339)
at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.a(SourceFile:1090)
at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.byte(SourceFile:218)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1909)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)
at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:525)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:424)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:352)
at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)
at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)
at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)
at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)
at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)
at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)
at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558)
at com.crystaldecisions.sdk.occa.report.application.ReportSource.getPage(SourceFile:767)
at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getPage(SourceFile:324)
at com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getPage(SourceFile:149)
at com.businessobjects.crystalreports.viewer.core.rs.RSRecordSource.openInputStream(Unknown Source)
at com.businessobjects.crystalreports.viewer.core.TSLVReader.a(Unknown Source)
at com.businessobjects.crystalreports.viewer.core.TSLVReader.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
This error was fixed by
1. Assigning an alias to all aggregate columns in the select clause of the query.
max(columnA) as columnA, count(*) as totalNum
2. Making sure no parameters are included in the select clause of the query. If there is really no place to put a parameter, add it to the where clause like {?parameter1}={?parameter1}
2. adding the following line to my code after the data source and all the parameters are set.
reportClientDocument.verifyDatabase();
The exception:
ERROR JRCCommunicationAdapter - detected an exception: Failed to bind columns.
at com.crystaldecisions.reports.datafoundation.DFQuery.for(SourceFile:632)
at com.crystaldecisions.reports.datalayer.a.do(SourceFile:1621)
at com.crystaldecisions.reports.datalayer.a.a(SourceFile:1404)
at com.crystaldecisions.reports.dataengine.m.b(SourceFile:334)
at com.crystaldecisions.reports.dataengine.j.b(SourceFile:515)
at com.crystaldecisions.reports.dataengine.m.o(SourceFile:408)
at com.crystaldecisions.reports.dataengine.m.a(SourceFile:173)
at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:114)
at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:95)
at com.crystaldecisions.reports.dataengine.j.case(SourceFile:1080)
at com.crystaldecisions.reports.dataengine.h.<init>(SourceFile:108)
at com.crystaldecisions.reports.dataengine.DataContext.a(SourceFile:254)
at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4660)
at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4574)
at com.crystaldecisions.reports.dataengine.DataProcessor2.new(SourceFile:2652)
at com.crystaldecisions.reports.dataengine.DataProcessor2.byte(SourceFile:2610)
at com.crystaldecisions.reports.dataengine.DataProcessor2.try(SourceFile:2282)
at com.crystaldecisions.reports.dataengine.DataProcessor2.int(SourceFile:2442)
at com.crystaldecisions.reports.dataengine.DataProcessor2.I(SourceFile:1013)
at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.fo(SourceFile:526)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.if(SourceFile:613)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.a(SourceFile:578)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.X(SourceFile:387)
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.moveToPageN(SourceFile:339)
at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.a(SourceFile:1090)
at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.byte(SourceFile:218)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1909)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)
at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:525)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:424)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:352)
at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)
at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)
at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)
at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)
at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)
at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)
at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558)
at com.crystaldecisions.sdk.occa.report.application.ReportSource.getPage(SourceFile:767)
at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getPage(SourceFile:324)
at com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getPage(SourceFile:149)
at com.businessobjects.crystalreports.viewer.core.rs.RSRecordSource.openInputStream(Unknown Source)
at com.businessobjects.crystalreports.viewer.core.TSLVReader.a(Unknown Source)
at com.businessobjects.crystalreports.viewer.core.TSLVReader.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
-----------------------------------------------------------------------------------------------------------------
Watch the blessing and loving online channel: SupremeMasterTV live
If you have ever asked yourself these questions, this is the book for you. What is the meaning of life? Why do people suffer? What is in control of my life? Why is life the way it is? How can I stop suffering and be happy? How can I have a successful life? How can I have a life I like to have? How can I be the person I like to be? How can I be wiser and smarter? How can I have good and harmonious relations with others? Why do people meditate to achieve enlightenment? What is the true meaning of spiritual practice? Why all beings are one? Read the book for free here.
No comments:
Post a Comment