tgilders Posted March 17, 2006 Share Posted March 17, 2006 I'm certain I've hit a limitation of the jdbc driver that comes with FileMaker 8 (SegueLink 5.4), but I'm wondering what limitation exactly I'm hitting. I've gotten pretty far, and here is what I'm currently doing: I'm running FileMaker 8 Server Advanced 8.0v2 with the jdbc driver installed and configured successfully. I've downloaded WebLogic 9.1 and configured a Data Source successfully to connect to the FileMaker 8 Server. Once this hurtle was crossed, I made a simple JSP page to pull some data from a sample database and simply display it. This test was quite crude, but established the fact that I had a working connection. Now, I'm not a java/jsp/weblogic expert by any stretch. I downloaded Sun's Creator 2 IDE and started going through the tutorials. This IDE generated some complicated framework using JSF. I did get a lot of the tutorial examples working with my setup. Then I hit a wall. In this tutorial (Here) 3/4 down, there is the save_action() implementation. After implementing it and attempting to test it (part 3). I got an error: java.sql.SQLException: [DataDirect][sequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Expression is not implemented I'm just wondering if anyone can take a look at the full stack trace below and determine what this code is asking the Segue driver to do that it can't. Here is the full stack trace: java.lang.RuntimeException: java.sql.SQLException: [DataDirect][sequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Expression is not implemented at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorRow(CachedRowSetDataProvider.java:343) at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorIndex(CachedRowSetDataProvider.java:300) at com.sun.data.provider.impl.CachedRowSetDataProvider.getRowKeys(CachedRowSetDataProvider.java:245) at com.sun.data.provider.impl.CachedRowSetDataProvider.cursorFirst(CachedRowSetDataProvider.java:351) at fm8jdbccrud.Page1.save_action(Page1.java:488) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72) at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57) at javax.faces.component.UICommand.broadcast(UICommand.java:312) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:221) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3151) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:179) java.sql.SQLException: [DataDirect][sequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Expression is not implemented at com.ddtek.sequelink.ssp.Diagnostic.toSQLException(Unknown Source) at com.ddtek.sequelink.ssp.Chain.cnvDiagnostics(Unknown Source) at com.ddtek.sequelink.ssp.Chain.decodeDiagnostic(Unknown Source) at com.ddtek.sequelink.ssp.Chain.decodeBody(Unknown Source) at com.ddtek.sequelink.ssp.Chain.decode(Unknown Source) at com.ddtek.sequelink.ssp.Chain.send(Unknown Source) at com.ddtek.sequelink.ctxt.stmt.StatementContext.associate(Unknown Source) at com.ddtek.jdbc.sequelink.SequeLinkImplStatement.prepare(Unknown Source) at com.ddtek.jdbc.slbase.BaseImplStatement.prepare(Unknown Source) at com.ddtek.jdbc.slbase.BasePreparedStatement.prepareSQL(Unknown Source) at com.ddtek.jdbc.slbase.BaseStatement.preProcessSQL(Unknown Source) at com.ddtek.jdbc.slbase.BasePreparedStatement.(Unknown Source) at com.ddtek.jdbc.slbase.BaseConnection.prepareStatement(Unknown Source) at com.ddtek.jdbc.slbase.BaseConnection.prepareStatement(Unknown Source) at weblogic.jdbc.common.internal.ConnectionEnv.makeStatement(ConnectionEnv.java:1213) at weblogic.jdbc.common.internal.ConnectionEnv.getCachedStatement(ConnectionEnv.java:993) at weblogic.jdbc.common.internal.ConnectionEnv.getCachedStatement(ConnectionEnv.java:927) at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:500) at com.sun.sql.rowset.internal.CachedRowSetXReader.readData(CachedRowSetXReader.java:140) at com.sun.sql.rowset.CachedRowSetXImpl.execute(CachedRowSetXImpl.java:950) at com.sun.sql.rowset.CachedRowSetXImpl.execute(CachedRowSetXImpl.java:1410) at com.sun.data.provider.impl.CachedRowSetDataProvider.checkExecute(CachedRowSetDataProvider.java:1219) at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorRow(CachedRowSetDataProvider.java:329) at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorIndex(CachedRowSetDataProvider.java:300) at com.sun.data.provider.impl.CachedRowSetDataProvider.getRowKeys(CachedRowSetDataProvider.java:245) at com.sun.data.provider.impl.CachedRowSetDataProvider.cursorFirst(CachedRowSetDataProvider.java:351) at fm8jdbccrud.Page1.save_action(Page1.java:488) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72) at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57) at javax.faces.component.UICommand.broadcast(UICommand.java:312) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:221) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3151) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:179) And here is the code page1.java public String save_action() { try { // Get the next key, using result of query on MaxTrip data provider CachedRowSetDataProvider maxTrip = getSessionBean1().getMaxTripDataProvider(); maxTrip.refresh(); [color:red]maxTrip.cursorFirst(); // <------Line 488 where error occurred. int newTripId = ((Long) maxTrip.getValue("MAXTRIPID")).intValue(); // Navigate through rows with data provider if (tripDataProvider.getRowCount() > 0) { tripDataProvider.cursorFirst(); do { if (tripDataProvider.getValue("TripID").equals(new Integer(0))) { tripDataProvider.setValue("TripID", new Integer(newTripId)); newTripId++; } } while (tripDataProvider.cursorNext()); }; tripDataProvider.commitChanges(); } catch (Exception ex) { log("Error Description", ex); error("Error :"+ex.getMessage()); } return null; } Here is the metadata that lists the SegueLink drivers capabilities: Connection Established getMetaData() Succeeded. All Procedures Are Callable: false All Tables Are Selectable: true Data Definition Causes Transaction Commit: false Does Max Row Size Include Blobs: false Catalog Separator: Catalog Term: // JDBC 3.0 Database Major Version: 7 // JDBC 3.0 Database Minor Version: 0 Database Product Name: FileMaker Database Product Version: 07.00.0000 Filemaker Default Transaction Isolation: 2 Driver Major Version: 5 Driver Minor Version: 4 Driver Name: SequeLink Driver Version: 5.4.0034 Extra Name Characters: ~@#$%^&*_-+=}{;:?/><,.![] Identifier Quote String: " Max Binary Literal Length: 0 Max Catalog Name Length: 0 Max Char Literal Length: 0 Max Column Name Length: 100 Max Columns In Group By: 0 Max Columns In Index: 0 Max Columns In Order By: 0 Max Columns In Select: 0 Max Columns In Table: 1024 Max Connections: 0 Max Cursor Name Length: 18 Max Index Length: 100 Max Procedure Name Length: 0 Max Row Size: 200000 Max Schema Name Length: 0 Max Statement Length: 0 Max Statements: 0 Max Table Name Length: 100 Max Tables In Select: 31 Max User Name Length: 0 Numeric Functions: FLOOR,MOD,POWER,ROUND Procedure Term: // JDBC 3.0 ResultSet Holdability: 2 SQL Keywords: // JDBC 3.0 SQL State Type: 1 Schema Term: Search String Escape: ~ String Functions: CHAR,CONCAT,LCASE,LEFT,LENGTH,LTRIM,RIGHT,RTRIM,SPACE,SUBSTRING,UCASE System Functions: IFNULL,USERNAME Time Date Functions: CURDATE,DAYOFMONTH,DAYOFWEEK,MONTH,YEAR URL: jdbc:datadirect:sequelink://MIFHFMTEST01:2399;MAXPOOLEDSTATEMENTS=0;NETWORKPROTOCOL=socket;LOGINTIMEOUT=0;INSENSITIVERESULTSETBUFFERSIZE=2048 User Name: Admin Catalog At Start: false Read Only: false // JDBC 3.0 Locators Update Copy: true Null + Non Null Is Null: false Nulls Are Sorted At End: false Nulls Are Sorted At Start: true Nulls Are Sorted High: false Nulls Are Sorted Low: false Stores Lower Case Identifiers: false Stores Lower Case Quoted Identifiers: false Stores Mixed Case Identifiers: false Stores Mixed Case Quoted Identifiers: false Stores Upper Case Identifiers: true Stores Upper Case Quoted Identifiers: false Supports ANSI92 Entry Level SQL: true Supports ANSI92 Full SQL: false Supports ANSI92 Intermediate SQL: false Supports Alter Table With Add Column: true Supports Alter Table With Drop Column: true Supports Catalogs In Data Manipulation: false Supports Catalogs In Index Definitions: false Supports Catalogs In Privilege Definitions: false Supports Catalogs In Procedure Calls: false Supports Catalogs In Table Definitions: false Supports Column Aliasing: true Supports Convert: false Supports Core SQL Grammar: false Supports Correlated Subqueries true Supports Data Definition & Manipulation: false Supports Data Manipulation Only: true Supports Different Table Correlation Names: false Supports Expressions In Order By: true Supports Extended SQL Grammar: false Supports Full Outer Joins: false // JDBC 3.0 Supports Get Generated Keys: false Supports Group By: true Supports Group By Beyond Select: true Supports Group By Unrelated: false Supports Integrity Enhancement: false Supports Like Escape Clause: false Supports Limited Outer Joins: true Supports Minimum SQL Grammar: true Supports Mixed Case Identifiers: false Supports Mixed Case Quoted Identifiers: true // JDBC 3.0 Supports Multiple Open Results: true Supports Multiple Result Sets: false Supports Multiple Transactions: false // JDBC 3.0 Supports Named Parameters: false Supports Non-Nullable Columns: true Supports Open Cursors Across Commit: false Supports Open Cursors Across Rollback: false Supports Open Statements Across Commit: false Supports Open Statements Across Rollback: false Supports Order By Unrelated: true Supports Outer Joins: true Supports Positioned Delete: false Supports Positioned Update: false // JDBC 3.0 Supports ResultSetHoldability Hold Cursors Over Commit: false // JDBC 3.0 Supports ResultSetHoldability Close Cursors At Commit: true // JDBC 3.0 Supports Savepoints: false Supports Schemas In Data Manipulation: false Supports Schemas In Index Definitions: false Supports Schemas In Priviledge Definitions: false Supports Schemas In Procedure Calls: false Supports Schemas In Table Definitions: false Supports Select For Update: false Supports Stored Procedures: false Supports Subqueries In Comparisons: true Supports Subqueries In Exists: true Supports Subqueries In Ins: true Supports Subqueries In Quantifieds: true Supports Table Correlation Names: true Supports Transactions: true Supports Union: true Supports Union All: true Uses Local File Per Table: false Uses Local Files: false // JDBC 2.0 Supports Batch Updates: true Link to comment Share on other sites More sharing options...
ave! Posted March 29, 2006 Share Posted March 29, 2006 Though I'm not sure what you are trying to achieve, Creator 2 wouldn't be what you want. Here's the list of DB servers and JDBC drivers supported by Creator 2 (in case you have not checked yet). http://developers.sun.com/prodtech/javatools/jscreator/reference/docs/2/Installation_ReleaseNotes.html#databaseservers I guess it's 'scrollable result sets' which caused the error but it may be just one of the other unimplemented functions Creator 2 will require. Hope this helps. Link to comment Share on other sites More sharing options...
Recommended Posts
This topic is 6575 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now