Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Adding filter criteria programmatically

    Hi,

    I have a DataSource ds for a type of objects, let's call them cars. Now I have a tree that displays groups of cars by colors.

    When I click on a node, a ListGrid of the contained cars gets opened. I do using the following code:
    Code:
    Criteria criteria = new Criteria();
    criteria.addCriteria("color", group.getColor());
    ds.fetchData(criteria, new DSCallback() {
      carList.setData(response.getData());
    [...]
    Additionally, I want to enable filtering for this ListGrid. So, I let the filter editor appear. When I now use this filter form, I get all cars returned, not only the filtered for the one color.

    My question is: How can I append the color as filter criterion, so the cars are also filtered by the color?
    I already tried to override the ListGrid's filterData() methods. But they don't seem to be called when the user presses the filter button... And there is nothing like "addFilterEventHandler()". So what do I have to do, to append the criterion automatically everytime the ListGrid gets filtered by the user?


    P.s.: The color attribute is hidden. So it is not displayed in the FilterEditor.

    #2
    This is now handled automatically (applied criteria are sticky). Probably easiest just to upgrade.

    Comment


      #3
      So the criteria on fetching data is the same as the filter criteria? Or put it this way: It has the same effect.?

      I am using an evaluation kit, how can I update?

      Comment


        #4
        When you apply criteria to a grid and you have a filter editor, criteria which cannot be displayed in the filter editor (different field name, as in your case) are retained even as the user enters criteria in the filter editor.

        Grab a new build from smartclient.com/builds.

        Comment


          #5
          Is it already included in the 2.3 version or do I have to take a nightly build?

          And now I discovered an even stranger behavior: My Grid is not filtering anything, because no criteria is passed to the DMI Datasource.

          Just to make sure it is no fault by me:
          carList.setShowFilterEditor(true);
          carList.setAutoFetchTextMatchStyle(TextMatchStyle.SUBSTRING);
          Is there something missing to enable filtering? From the JavaDoc it appeared to be enough, but the bahavior of my app is strange...
          Last edited by chrisw; 13 Sep 2010, 03:25.

          Comment


            #6
            We would recommend both grabbing a nightly and reading the new QuickStart Guide.

            See DataSource.fetchData() for when you should expect a server request - no server request is issued if the filtering can be performed locally. You may also have set the DataSource to clientOnly, in which case all filtering is client-side.

            Comment


              #7
              I now changed my Datasource from DMI to SQL to have all the built-in stadard behavior.
              Trying to filter, I now receive a error message saying "ORA-00907: missing right parenthesis". As everything is done automatically by SmartGWT, it is properly a configuration problem.

              I am using Oracle 11gR2. My server.properties look like the following:
              Code:
              [...]
              sql.defaultDatabase: Oracle
              
              # -------------- SETTINGS FOR ORACLE --------------------
              sql.Oracle.database.type: oracle
              sql.Oracle.interface.type: dataSource
              #sql.Oracle.driver: oracle.jdbc.driver.OracleDriver
              sql.Oracle.driver: oracle.jdbc.pool.OracleDataSource
              sql.Oracle.driver.driverType: thin
              
              sql.Oracle.driver.user: *****
              sql.Oracle.driver.password: *****
              sql.Oracle.interface.credentialsInURL: true
              
              sql.Oracle.driver.databaseName: *****
              sql.Oracle.driver.serverName: *****
              sql.Oracle.driver.portNumber: *****
              sql.Oracle.driver.networkProtocol: tcp
              
              sql.Oracle.pool.enabled: false
              sql.Oracle.database.supportsSQLLimit: false
              sql.Oracle.driver.context: _container_
              sql.Oracle.autoJoinTransactions: true
              [...]
              My datasoure begins like that:
              Code:
              <DataSource ID="cars" serverType="sql" tableName="cars">
              	<fields>
              [...]
              My working Hibernate had the driver 'oracle.jdbc.driver.OracleDriver', which did not work here.
              Am I missing something? Or did I misuse one parameter?

              Comment


                #8
                We'd have to see the complete server log of the request that failed to know. That's always something we'll need to help with a server-side error.

                Comment


                  #9
                  Hi,

                  is it this one?

                  Code:
                  === 2010-09-15 16:58:25,187 [l0-3] INFO  SQLDataSource - [builtinApplication.car_fetch] Performing fetch operation with
                  	criteria: {_constructor:"AdvancedCriteria",operator:"and",criteria:[{fieldName:"name",operator:"iContains",value:"hallo"},{fieldName:"starttime",operator:"iContains",value:new Date(1284501600000)}]}	values: {_constructor:"AdvancedCriteria",operator:"and",criteria:[{fieldName:"name",operator:"iContains",value:"hallo"},{fieldName:"starttime",operator:"iContains",value:new Date(1284501600000)}]}
                  === 2010-09-15 16:58:25,187 [l0-3] INFO  SQLDataSource - [builtinApplication.car_fetch] derived query: SELECT $defaultSelectClause FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND ($defaultWhereClause) ORDER BY $defaultOrderClause
                  === 2010-09-15 16:58:25,187 [l0-3] DEBUG SQLDataSource - [builtinApplication.car_fetch] Executing row count query: SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND ($defaultWhereClause)
                  === 2010-09-15 16:58:25,187 [l0-3] DEBUG SQLDataSource - [builtinApplication.car_fetch] Eval'd row count query: SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND (((LOWER(CARS.name) LIKE LOWER('%hallo%') {ESCAPE '\'} AND CARS.name IS NOT NULL) AND (LOWER(CARS.starttime) LIKE LOWER('%wed sep 15 00:00:00 cest 2010%') {ESCAPE '\'} AND CARS.starttime IS NOT NULL)))
                  === 2010-09-15 16:58:25,255 [l0-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.car_fetch] Returning unpooled Connection
                  === 2010-09-15 16:58:25,255 [l0-3] INFO  SQLDriver - [builtinApplication.car_fetch] Executing SQL query on 'Oracle': SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND (((LOWER(CARS.name) LIKE LOWER('%hallo%') {ESCAPE '\'} AND CARS.name IS NOT NULL) AND (LOWER(CARS.starttime) LIKE LOWER('%wed sep 15 00:00:00 cest 2010%') {ESCAPE '\'} AND CARS.starttime IS NOT NULL)))
                  === 2010-09-15 16:58:25,286 [l0-3] INFO  SQLDriver - [builtinApplication.car_fetch] Execute of select: SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND (((LOWER(CARS.name) LIKE LOWER('%hallo%') {ESCAPE '\'} AND CARS.name IS NOT NULL) AND (LOWER(CARS.starttime) LIKE LOWER('%wed sep 15 00:00:00 cest 2010%') {ESCAPE '\'} AND CARS.starttime IS NOT NULL))) on db: Oracle threw exception: java.sql.SQLException: ORA-00907: missing right parenthesis
                   - assuming stale connection and retrying query.
                  === 2010-09-15 16:58:25,333 [l0-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.car_fetch] Returning unpooled Connection
                  === 2010-09-15 16:58:25,348 [l0-3] WARN  RequestContext - dsRequest.execute() failed: 
                  java.sql.SQLException: ORA-00907: missing right parenthesis
                  
                  	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
                  	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
                  	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
                  	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
                  	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
                  	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
                  	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194)
                  	at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:853)
                  	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
                  	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
                  	at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4619)
                  	at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:4748)
                  	at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1476)
                  	at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:389)
                  	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:324)
                  	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:267)
                  	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:261)
                  	at com.isomorphic.sql.SQLDriver.getScalarResult(SQLDriver.java:354)
                  	at com.isomorphic.sql.SQLDriver.executeScalar(SQLDriver.java:556)
                  	at com.isomorphic.sql.SQLDataSource.executeWindowedSelect(SQLDataSource.java:1395)
                  	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1211)
                  	at com.isomorphic.sql.SQLDataSource.execute(SQLDataSource.java:257)
                  	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                  	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                  	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                  	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1382)
                  	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:173)
                  	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:130)
                  	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:95)
                  	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                  	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                  	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                  	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                  	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:67)
                  	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
                  	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
                  	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                  	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                  	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                  	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                  	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                  	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                  	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                  	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                  	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                  	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                  	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                  	at org.mortbay.jetty.Server.handle(Server.java:324)
                  	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                  	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                  	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                  	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                  	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                  	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                  	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                  === 2010-09-15 16:58:25,364 [l0-3] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
                  === 2010-09-15 16:58:25,364 [l0-3] DEBUG RPCManager - non-DMI response, dropExtraFields: false
                  === 2010-09-15 16:58:25,364 [l0-3] INFO  Compression - /simpledialog/sc/IDACall: 144 -> 139 bytes
                  === 2010-09-15 16:58:25,442 [l0-4] INFO  RequestContext - URL: '/simpledialog/sc/skins/Enterprise/images/button/button_Over_end.png', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                  === 2010-09-15 16:58:25,442 [l0-0] INFO  RequestContext - URL: '/simpledialog/sc/skins/Enterprise/images/button/button_Over_stretch.png', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                  === 2010-09-15 16:58:25,442 [l0-4] INFO  Download - done streaming: C:/SVN/GUIInvestigation/source/Cars prototype/war/simpledialog/sc/skins/Enterprise/images/button/button_Over_end.png
                  === 2010-09-15 16:58:25,442 [l0-0] INFO  Download - done streaming: C:/SVN/GUIInvestigation/source/Cars prototype/war/simpledialog/sc/skins/Enterprise/images/button/button_Over_stretch.png
                  === 2010-09-15 16:58:25,442 [l0-6] INFO  RequestContext - URL: '/simpledialog/sc/skins/Enterprise/images/button/button_Over_start.png', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                  === 2010-09-15 16:58:25,442 [l0-3] INFO  RequestContext - URL: '/simpledialog/sc/skins/Enterprise/images/Dialog/warn.png', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                  === 2010-09-15 16:58:25,442 [l0-6] INFO  Download - done streaming: C:/SVN/GUIInvestigation/source/Cars prototype/war/simpledialog/sc/skins/Enterprise/images/button/button_Over_start.png
                  === 2010-09-15 16:58:25,458 [l0-3] INFO  Download - done streaming: C:/SVN/GUIInvestigation/source/Cars prototype/war/simpledialog/sc/skins/Enterprise/images/Dialog/warn.png

                  Comment


                    #10
                    Yes - so, your criteria contains case-insensitive textual comparison on field of type "date", passed a Date (not a String) as the value to compare against. This doesn't make much sense and leads to this error. What filtering behavior were you going for here?

                    Comment


                      #11
                      Also, what is your exact database version and JDBC driver?

                      All versions of Oracle we've tested would consider that a well-formed query if executed via JDBC, although some versions will consider the { ESCAPE } portion to be bad syntax if executed via the web-based admin tool (but it works via JDBC).

                      Comment


                        #12
                        Originally posted by Isomorphic
                        What filtering behavior were you going for here?
                        I have this DataSource
                        Code:
                        <DataSource ID="cars" serverType="sql" tableName="CARS">
                          <fields>
                            <field name="id" title="ID" type="integer" hidden="true" primaryKey="true" required="true" />
                            <field name="name" title="Name" type="text" />
                            <field name="manuid" type="int"  hidden="true" />
                            <field name="manuname" title="Manufacturer" type="text" customSQL="true"  tableName="MANUFACTURER" />
                            <field name="starttime" title="Start time" type="Date" />
                            <field name="endtime" title="End time" type="date" />
                          </fields>
                          <operationBindings>
                            <operationBinding operationType="fetch" customValueFields="manuname" customCriteriaFields="manuname">
                              <tableClause>CARS, MANUFACTURER</tableClause>
                              <whereClause>CARS.MANUID = MANUFACTURER.ID AND ($defaultWhereClause)</whereClause>
                            </operationBinding>
                          </operationBindings>
                        </DataSource>
                        In the ListGrid I do not specify any fields, so the fields and their hidden/shown settings are coming directly from the database. After creating the ListGrid I just do
                        Code:
                        carList.setShowFilterEditor(true);
                        and in a separate function I create a callback fr fetch data, which looks like this:
                        Code:
                        ds.fetchData(criteria, new DSCallback() {
                          @Override
                          public void execute(DSResponse response, Object rawData, DSRequest request) {
                            // Error handling
                            if (response.getStatus() < 0) {
                              System.out.println(response.getErrors());
                              SC.say("Failures!");
                              return;
                            }
                        				
                            // Set list grid data
                            carList.setSortField("name");
                            carList.setSortDirection(SortDirection.ASCENDING);
                            carList.setData(response.getData());
                          }
                        });
                        That's all I'm doing and I was hoping that filtering will work by doing this. So sorry, I do not know, what filtering behavior that is...

                        The error, however, occurred when I entered some letters in the name-filter-field and hit the enter button.



                        Originally posted by Isomorphic
                        Also, what is your exact database version and JDBC driver?
                        The Oracle database is of version 11g R2 (11.2.0.1.0).

                        About the JDBC I am not quite sure, where to look. In the build path I have a 'ojdbc5.jar'. I do not know how to check it's detailed version info, but if you can tell me, I will check.
                        In the build path, there is also the 'SGWTEE_HOME/lib/jdbc2_0-stdext.jar'.

                        Comment


                          #13
                          The first problem is that the field is of type "Date" with a capital D which is incorrect - change it to "date". Having done this you should be a date range filter control appear on the field, which should generate different criteria.

                          As far as the driver version, if you don't know where the file is from, download the driver anew and make sure it's intended for your database version. That should correct the SQL error.

                          Comment


                            #14
                            Hi again,

                            I changed the date field to "date" (without capital) and downloaded the correct JDBC driver (
                            http://www.oracle.com/technetwork/da...10-090769.html) that goes with my DB and also the JDK version.

                            I get again the message "ORA-00907: missing right parenthesis". Here is the console output:

                            Code:
                            === 2010-09-21 10:14:51,457 [l0-9] INFO  RequestContext - URL: '/simpledialog/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)': Moz (Gecko) with Accept-Encoding header
                            === 2010-09-21 10:14:51,457 [l0-9] DEBUG XML - Parsed XML from (in memory stream): 0ms
                            === 2010-09-21 10:14:51,472 [l0-9] DEBUG RPCManager - Processing 1 requests.
                            === 2010-09-21 10:14:51,472 [l0-9] DEBUG RPCManager - Request #1 (DSRequest) payload: {
                                criteria:{
                                    _constructor:"AdvancedCriteria",
                                    operator:"and",
                                    criteria:[
                                        {
                                            fieldName:"name",
                                            operator:"iContains",
                                            value:"porsche"
                                        }
                                    ]
                                },
                                operationConfig:{
                                    dataSource:"cars",
                                    operationType:"fetch",
                                    textMatchStyle:"substring"
                                },
                                startRow:0,
                                endRow:75,
                                sortBy:[
                                    "name"
                                ],
                                componentId:"isc_ListGrid_0",
                                appID:"builtinApplication",
                                operation:"cars_fetch",
                                oldValues:{
                                    _constructor:"AdvancedCriteria",
                                    operator:"and",
                                    criteria:[
                                        {
                                            fieldName:"name",
                                            operator:"iContains",
                                            value:"porsche"
                                        }
                                    ]
                                }
                            }
                            === 2010-09-21 10:14:51,472 [l0-9] INFO  IDACall - Performing 1 operation(s)
                            === 2010-09-21 10:14:51,472 [l0-9] DEBUG AppBase - [builtinApplication.cars_fetch] No userTypes defined, allowing anyone access to all operations for this application
                            === 2010-09-21 10:14:51,472 [l0-9] DEBUG AppBase - [builtinApplication.cars_fetch] No public zero-argument method named '_cars_fetch' found, performing generic datasource operation
                            === 2010-09-21 10:14:51,472 [l0-9] INFO  SQLDataSource - [builtinApplication.cars_fetch] Performing fetch operation with
                            	criteria: {_constructor:"AdvancedCriteria",operator:"and",criteria:[{fieldName:"name",operator:"iContains",value:"porsche"}]}	values: {_constructor:"AdvancedCriteria",operator:"and",criteria:[{fieldName:"name",operator:"iContains",value:"porsche"}]}
                            === 2010-09-21 10:14:51,536 [l0-9] INFO  SQLDataSource - [builtinApplication.cars_fetch] derived query: SELECT $defaultSelectClause FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND ($defaultWhereClause) ORDER BY $defaultOrderClause
                            === 2010-09-21 10:14:51,536 [l0-9] DEBUG SQLDataSource - [builtinApplication.cars_fetch] Executing row count query: SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND ($defaultWhereClause)
                            === 2010-09-21 10:14:51,536 [l0-9] DEBUG SQLDataSource - [builtinApplication.cars_fetch] Eval'd row count query: SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND (((LOWER(CARS.name) LIKE LOWER('%porsche%') {ESCAPE '\'} AND CARS.name IS NOT NULL)))
                            === 2010-09-21 10:14:51,583 [l0-9] DEBUG PoolableSQLConnectionFactory - [builtinApplication.cars_fetch] Returning unpooled Connection
                            === 2010-09-21 10:14:51,583 [l0-9] INFO  SQLDriver - [builtinApplication.cars_fetch] Executing SQL query on 'Oracle': SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND (((LOWER(CARS.name) LIKE LOWER('%porsche%') {ESCAPE '\'} AND CARS.name IS NOT NULL)))
                            === 2010-09-21 10:14:51,598 [l0-9] INFO  SQLDriver - [builtinApplication.cars_fetch] Execute of select: SELECT COUNT(*) FROM CARS, MANUFACTURER WHERE CARS.MANUID = MANUFACTURER.ID AND (((LOWER(CARS.name) LIKE LOWER('%porsche%') {ESCAPE '\'} AND CARS.name IS NOT NULL))) on db: Oracle threw exception: java.sql.SQLSyntaxErrorException: ORA-00907: missing right parenthesis
                             - assuming stale connection and retrying query.
                            === 2010-09-21 10:14:51,645 [l0-9] DEBUG PoolableSQLConnectionFactory - [builtinApplication.cars_fetch] Returning unpooled Connection
                            === 2010-09-21 10:14:51,661 [l0-9] WARN  RequestContext - dsRequest.execute() failed: 
                            java.sql.SQLSyntaxErrorException: ORA-00907: missing right parenthesis
                            
                            	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
                            	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
                            	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
                            	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
                            	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
                            	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
                            	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194)
                            	at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:853)
                            	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
                            	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
                            	at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4640)
                            	at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:4769)
                            	at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1476)
                            	at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:389)
                            	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:324)
                            	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:267)
                            	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:261)
                            	at com.isomorphic.sql.SQLDriver.getScalarResult(SQLDriver.java:354)
                            	at com.isomorphic.sql.SQLDriver.executeScalar(SQLDriver.java:556)
                            	at com.isomorphic.sql.SQLDataSource.executeWindowedSelect(SQLDataSource.java:1395)
                            	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1211)
                            	at com.isomorphic.sql.SQLDataSource.execute(SQLDataSource.java:257)
                            	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                            	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                            	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                            	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1382)
                            	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:173)
                            	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:130)
                            	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:95)
                            	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)
                            	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                            	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                            	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                            	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                            	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                            	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:67)
                            	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
                            	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
                            	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                            	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                            	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                            	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                            	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                            	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                            	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                            	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                            	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                            	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                            	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                            	at org.mortbay.jetty.Server.handle(Server.java:324)
                            	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                            	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                            	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                            	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                            	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                            	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                            	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                            === 2010-09-21 10:14:51,661 [l0-9] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
                            === 2010-09-21 10:14:51,661 [l0-9] DEBUG RPCManager - non-DMI response, dropExtraFields: false
                            === 2010-09-21 10:14:51,676 [l0-9] INFO  Compression - /simpledialog/sc/IDACall: 144 -> 139 bytes
                            Do you have any ideas?


                            Btw: For me the "date" column really only shows a date without some time information. Regarding the quick start guide on page 37, there are only "text" | "integer" | "float" | "boolean" | "date" | "sequence". How can I also provide time information for the date field?
                            Last edited by chrisw; 21 Sep 2010, 00:27.

                            Comment


                              #15
                              So which specific file did you download? We need the exact setup in order to see if we can duplicate the problem.

                              Also what operating system and version, and what servlet container are you using?

                              One the types, see the QuickStart Guide, SmartGWT Server Framework chapter - use "datetime" if the time information is meaningful and should be displayed.

                              Comment

                              Working...
                              X