Quantcast
Channel: SCN : Popular Discussions - SAP Crystal Reports, version for Eclipse
Viewing all articles
Browse latest Browse all 893

Crystal Report throws Unexpected Database Connector error

$
0
0

Hi,<br>

<br>

We are using Crystal report 2008 CR4E API to implement the crystal report in our application. We use the below code to reset the report data source with our application data source. It works fine for most of the simple queries. But if the query contains any function defined in the SELECT Clause it throws Unexpected Database Connector error. As per the log and analysis we believe the root cause of the exception is it consider that function as column in the table and throws the SQL Exception that "function is Invalid Identifier". Could you please help in resolving this issue?

<br><br>

 

Code:<br><br>

 

     Tables tables = clientDoc.getDatabaseController().getDatabase().getTables(); <br>

            for(int i = 0;i < tables.size();i++){<br>

                origTable = tables.getTable(i);<br>

                if (tableName == null || origTable.getName().equals(tableName)) {<br>

                    newTable = (ITable)origTable.clone(true);<br>

 

                    newTable.setQualifiedName(origTable.getAlias());<br>

 

                    connectionInfo = newTable.getConnectionInfo();<br>

 

                    propertyBag = new PropertyBag();<br>

 

                     

                    propertyBag.put("Trusted_Connection", params.trustedCon);<br>

                    propertyBag.put("Server Type", params.serverType);<br>

                    propertyBag.put("Use JDBC", params.useJdbc);<br><br>

                    propertyBag.put("Database DLL",params.databaseDLL);<br>

                    propertyBag.put("Connection URL", params.connectionURL);<br>

                    propertyBag.put("Database Class Name", params.dbClassName);<br>

                    connectionInfo.setAttributes(propertyBag);<br>

 

                    connectionInfo.setUserName(params.userName);<br>

                    connectionInfo.setPassword(params.password);<br>

                    clientDoc.getDatabaseController().setTableLocation(origTable, newTable); // Exception is thrown here<br>

                     

          }                    <br>

     }     <br>

<br>

 

SQL Query : <br><br>

 

Select empno, Fun_getEmpAddress(empno) from employee where empno = ?<br><br><br>

 

 

Error Log:<br><br>

 

2011-04-26 16:30:41.926 89022900 CrystalReportParms_jsp._jspService(368) Error while generating crystal report<br>

 

com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Unexpected database connector error---- Error code:-2147467259 Error code name:failed<br>

     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:2285)<br>

     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:2305)<br>

     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:737)<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.an.a(SourceFile:108)<br>

     at com.crystaldecisions.sdk.occa.report.application.b0.if(SourceFile:148)<br>

     at com.crystaldecisions.sdk.occa.report.application.b0.b(SourceFile:95)<br>

     at com.crystaldecisions.sdk.occa.report.application.bb.int(SourceFile:96)<br>

     at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.performDo(SourceFile:151)<br>

     at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.a(SourceFile:106)<br>

     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:2159)<br>

     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:543)<br>

     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(SourceFile:3898)<br>

     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.setTableLocation(SourceFile:2906)<br>

     at com.mysystems.myapp.common.CRJavaHelper.changeDataSource(CRJavaHelper.java:157)<br>

     at com.mysystems.myapp.common.CrystalReport.print(CrystalReport.java:202)<br>

     at org.apache.jsp.english.CrystalReportParms_jsp._jspService(CrystalReportParms_jsp.java:368)<br>

     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)<br>

     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br>

     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)<br>

     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)<br>

     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)<br>

     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br>

     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br>

     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br>

     at com.mysystems.myapp.common.MyServletFilter.doFilter(MyServletFilter.java:107)<br>

     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br>

     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br>

     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br>

     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br>

     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<br>

     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br>

     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br>

     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)<br>

     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)<br>

     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)<br>

     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)<br>

     at java.lang.Thread.run(Thread.java:595)<br>

Caused by: com.crystaldecisions.reports.common.QueryEngineException: Unexpected database connector error<br>

     at com.crystaldecisions.reports.queryengine.Connection.bf(SourceFile:2958)<br>

     at com.crystaldecisions.reports.queryengine.Rowset.z3(SourceFile:944)<br>

     at com.crystaldecisions.reports.queryengine.Rowset.bL(SourceFile:533)<br>

     at com.crystaldecisions.reports.queryengine.Rowset.zM(SourceFile:245)<br>

     at com.crystaldecisions.reports.queryengine.Connection.a(SourceFile:776)<br>

     at com.crystaldecisions.reports.queryengine.Table.a(SourceFile:2234)<br>

     at com.crystaldecisions.reports.queryengine.Table.if(SourceFile:2161)<br>

     at com.crystaldecisions.reports.queryengine.Table.try(SourceFile:1525)<br>

     at com.crystaldecisions.reports.queryengine.Table.a(SourceFile:568)<br>

     at com.crystaldecisions.reports.queryengine.Table.u7(SourceFile:2405)<br>

     at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)<br>

     at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)<br>

     at com.crystaldecisions.reports.common.Document.a(SourceFile:203)<br>

     at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)<br>

     at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)<br>

     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1167)<br>

     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)<br>

     ... 47 more<br>

Caused by: com.businessobjects.reports.jdbinterface.common.DBException: Unexpected database connector error<br>

     at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCQueryDefinition.Execute(Unknown Source)<br>

     at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCQueryDefinition.Execute(Unknown Source)<br>

     at com.crystaldecisions.reports.queryengine.Connection.bf(SourceFile:2953)<br>

     ... 63 more<br>

Caused by: java.sql.SQLException: ORA-00904: "Fun_getEmpAddress": invalid identifier<br>

<br>

     at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)<br>

     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)<br>

     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)<br>

     at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:622)<br>

     at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:111)<br>

     at oracle.jdbc.driver.T4CStatement.execute_for_describe(T4CStatement.java:350)<br>

     at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:895)<br>

     at oracle.jdbc.driver.T4CStatement.execute_maybe_describe(T4CStatement.java:382)<br>

     at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:985)<br>

     at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1515)<br>

     ... 66 more<br>


Viewing all articles
Browse latest Browse all 893

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>