on 03-03-2011 11:48 AM
Hi All,
<br/><br/>
I have a crystal report with Command that uses a stored procedure.
<br/><br/>
Command has the script - EXECUTE [TestCrystalCastIssueSP] '{?name}','{?valueStr}',{?valueInt}
<br/><br/>
I use the below replaceConnection in the code for replacing the connections on run time for each table :
databaseController.replaceConnection(originalConnectionInfo, newConnectionInfo, fields, DBOptions._doNotVerifyDB);
<br/><br/>
All works fine.
<br/><br/><br/>
Now I change the script in stored procedure from 'SELECT * from TestCrystalCastIssue t' to 'SELECT t.name, t.valueStr, t.valueint from TestCrystalCastIssue t' - which means selecting only few columns of the table
<br/><br/>
Execute the report from java web application but the crystal engine throws the following error.
<br/><br/>
Please assist me. Thanks.
<br/><br/>
-- start of error log --<br/>
Error com.businessobjects.reports.sdk.JRCCommunicationAdapter - detected an exception: Failed to bind columns.<br/>
at com.crystaldecisions.reports.datafoundation.DFQuery.for(SourceFile:632)<br/>
at com.crystaldecisions.reports.datalayer.a.do(SourceFile:1621)<br/>
at com.crystaldecisions.reports.datalayer.a.a(SourceFile:1404)<br/>
at com.crystaldecisions.reports.dataengine.m.b(SourceFile:334)<br/>
at com.crystaldecisions.reports.dataengine.j.b(SourceFile:515)<br/>
at com.crystaldecisions.reports.dataengine.m.o(SourceFile:408)<br/>
at com.crystaldecisions.reports.dataengine.m.a(SourceFile:173)<br/>
at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:114)<br/>
at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:95)<br/>
at com.crystaldecisions.reports.dataengine.j.case(SourceFile:1080)<br/>
at com.crystaldecisions.reports.dataengine.h.<init>(SourceFile:108)<br/>
at com.crystaldecisions.reports.dataengine.DataContext.a(SourceFile:254)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4660)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4574)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.new(SourceFile:2652)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.byte(SourceFile:2610)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.try(SourceFile:2282)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.int(SourceFile:2442)<br/>
at com.crystaldecisions.reports.dataengine.DataProcessor2.I(SourceFile:1013)<br/>
at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.fo(SourceFile:526)<br/>
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.if(SourceFile:613)<br/>
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.a(SourceFile:578)<br/>
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.X(SourceFile:387)<br/>
at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.moveToPageN(SourceFile:339)<br/>
at com.crystaldecisions.reports.formatter.export2.a.a(SourceFile:78)<br/>
at com.crystaldecisions.reports.formatter.export2.a.a(SourceFile:247)<br/>
at com.crystaldecisions.reports.formatter.export2.ExportSupervisorEx.if(SourceFile:642)<br/>
at com.crystaldecisions.reports.formatter.export2.ExportSupervisorEx.a(SourceFile:586)<br/>
at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.a(SourceFile:636)<br/>
at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.int(SourceFile:672)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1944)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)<br/>
at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:525)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:424)<br/>
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:352)<br/>
at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)<br/>
at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)<br/>
at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)<br/>
at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)<br/>
at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)<br/>
at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)<br/>
at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558)<br/>
at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:337)<br/>
at com.crystaldecisions.sdk.occa.report.application.ReportSource.export(SourceFile:286)<br/>
at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.export(SourceFile:209)<br/>
at com.businessobjects.report.web.event.bh.a(SourceFile:158)<br/>
at com.businessobjects.report.web.event.o.a(SourceFile:146)<br/>
at com.businessobjects.report.web.event.bw.broadcast(SourceFile:93)<br/>
at com.businessobjects.report.web.event.am.a(SourceFile:53)<br/>
at com.businessobjects.report.web.a.t.if(SourceFile:2104)<br/>
at com.businessobjects.report.web.e.a(SourceFile:300)<br/>
at com.businessobjects.report.web.e.a(SourceFile:202)<br/>
at com.businessobjects.report.web.e.a(SourceFile:135)<br/>
at com.crystaldecisions.report.web.ServerControl.a(SourceFile:607)<br/>
at com.crystaldecisions.report.web.viewer.ReportExportControl.a(SourceFile:124)<br/>
at com.crystaldecisions.report.web.ServerControl.processHttpRequest(SourceFile:342)<br/>
at MyCrystalReportServlet.renderReport(MyCrystalReportServlet.java:565).<br/><br/>
-- end of error log --<br/><br/><br/>
-
start of stored procedure --<br/>
ALTER PROCEDURE [dbo].[TestCrystalCastIssueSP]<br/>
@p_name varchar(10),<br/>
@p_valueStr varchar(10),<br/>
@p_valueInt varchar(10)<br/>
AS<br/>
BEGIN<br/>
-- SET NOCOUNT ON added to prevent extra result sets from<br/>
-- interfering with SELECT statements.<br/>
SET NOCOUNT ON;<br/><br/>
-- Insert statements for procedure here<br/>
DECLARE @valueIntParam INT<br/>
SET @valueIntParam = cast(@p_valueInt AS INTEGER)<br/><br/>
-- below statement causes report to fail. there are four columns in the table.<br/>
--SELECT t.name, t.valueStr, t.valueint from TestCrystalCastIssue t WHERE t.valueInt = @valueIntParam<br/><br/>
SELECT * from TestCrystalCastIssue t WHERE t.valueInt = @valueIntParam<br/>
END<br/>
-
end of stored procedure --
Edited by: ratan korlam on Mar 3, 2011 12:52 PM
Below is the DEBUG stack trace for the error occurring - <br/><br/>
16:55:24,755 [http-127.0.0.1-8080-3] INFO com.crystaldecisions.reports.queryengine - Executing query using command text: <br/> EXECUTE [DB].[dob].[TestCrystalCastIssueSP] 'gg','ggg',111 <br/>
16:55:24,755 [http-127.0.0.1-8080-3] DEBUG com.crystaldecisions.reports.exporters.page.pdf.AdobePDFExporter - <br/> PDFExporter: PDFFormatter.finalizeFormatJob <br/>
16:55:24,755 [http-127.0.0.1-8080-3] ERROR com.businessobjects.reports.sdk.JRCCommunicationAdapter - detected an <br/> exception: Failed to bind columns. <br/>
at com.crystaldecisions.reports.datafoundation.DFQuery.for(SourceFile:632) <br/>
at com.crystaldecisions.reports.datalayer.a.do(SourceFile:1621) <br/>
at com.crystaldecisions.reports.datalayer.a.a(SourceFile:1404) <br/> <br/>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The above mentioned error occurs with crystal 12.x jars on JBoss.
Using the below statement (with crystal 11.x jars) makes the report to execute successfully. But this is not the desired feature as the db query in the stored procedure gets executed more than once.
databaseController.setTableLocation(orig.getTable(i), table);
Any suggestions?
User | Count |
---|---|
93 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.