tgilders Posted March 17, 2006 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
ave! Posted March 29, 2006 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.
Recommended Posts
This topic is 6815 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