Searching in ResultSet

Hi.
I'm new in Java, especially JDBC technology. I'm creating simple oracle client which retrieves huge load of data. I've just wondered is it possibe to search for data in resultset with a sql query ?
Thanks in advance,
Regards.

No.
Instead, design your SQL query to do the search on the database side and therefore produce a small ResultSet. That is what a database is designed for!. Your only other choice is retrieve all the data and convert them to Java objects, and search through the Java objects. This will always be much much slower, perhaps even 1,000,000 times slower.

Similar Messages

  • MDM Search From ResultSet after upgrade

    Hello, I am trying to modify a custom iview after an mdm business package upgrade to 5.5 sp06 and I'm getting an error I have not been able to resolve.
    A URL event is passing the [MDM Search] parameter from the ResultSet iview to my custom iview.  It gets to the point of the following code and terminates at the GetResultSet line with a NullPointerException.  The search is being filled I tested this as are all of the other parameters.
    Search search = new Search();     
    StringRef stringRef = new StringRef(searchString);     
    search.SetArchive(stringRef);
    A2iResultSet rs = catalogData.GetResultSet(search, resultSetDefinition, sortField, true, 0);
    if I edit the search line to say:
    Search search = new Search("Products");
    it works perfectly but obviously cuts out the search criteria.  this code was working perfectly pre upgrade.  Can anyone give any pointers as to the reason
    Thanks
    David
    Edited by: David R. Evans on Apr 17, 2008 7:30 PM

    Hi Jitesh
    Thanks for all your help so far
    Search s=new Search("Products");
    TableParameter tp=new TableParameter("Products");
    tp.setArchieve(stringRef);
    s.add(tp);
    A2iResultSet rs = catalogData.GetResultSet(s, resultSetDefinition, sortField, true, 0);
    I tried to above code and it again failed with nullpointerexceptions
    I tried using the FreeFormTableParameter instead and this failed, I tried he following code:
    Search s=new Search("Products");
    TableParameter tp=new TableParameter("Products");
    SearchParameter sp = tp;
    sp.setArchieve(stringRef);
    s.add(sp);
    A2iResultSet rs = catalogData.GetResultSet(s, resultSetDefinition, sortField, true, 0);
    This also failed with the same error.

  • Searching the resultset

    Hi
    I am executing a SQL query to get two columns from USR table and store in ResultSet [SELECT USR_KEY,USR_LOGIN from USR]
    Now can I do a search on this resultset to find out the USR_LOGIN where the USR_KEY is 'X'.
    I know I can go for searching the user using OIM API but I need to go by the approach mentioned above. Can anyone help me in searching record in resultset.

    You can use below method to iterate a tcResultSet
    public void printResultSet(tcResultSet rs) throws tcAPIException, tcColumnNotFoundException {
    String methodName = "printResultSet";
    logger.setMethodStartLog(className, methodName);
    logger.debug(className, methodName, "COUNT = " + rs.getRowCount());
    String[] cols = rs.getColumnNames();
    for (int i = 0; i < rs.getRowCount(); ++i) {
    rs.goToRow(i);
    for (int j = 0; j < cols.length; j++) {
    if (cols[j].indexOf("Row Version") == -1) {
    logger.debug(className, methodName, cols[j] + "\t\t:"
    + rs.getStringValue(cols[j]));
    logger.setMethodFinishLog(className, methodName);
    Thanks
    Suren

  • Problem:Can't instantiate class

    I tried for many hours to solve the problem but in vain.
    here is the Exception i got from tomcat:javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'core.walid.NwindManagedBean'.. core.walid.NwindManagedBean
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:844)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
         org.apache.jsp.index_jsp._jspService(index_jsp.java:91)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
         com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
         com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
         com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
         com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
         com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
         javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
         org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
    cause m�re
    javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'core.walid.NwindManagedBean'.. core.walid.NwindManagedBean
         com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:206)
         com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
         javax.faces.component.UIData.getValue(UIData.java:527)
         javax.faces.component.UIData.getDataModel(UIData.java:856)
         javax.faces.component.UIData.setRowIndex(UIData.java:379)
         com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:65)
         javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:683)
         javax.faces.component.UIData.encodeBegin(UIData.java:681)
         javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:591)
         javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:543)
         com.sun.faces.taglib.html_basic.DataTableTag.doEndTag(DataTableTag.java:491)
         org.apache.jsp.index_jsp._jspx_meth_h_dataTable_0(index_jsp.java:161)
         org.apache.jsp.index_jsp._jspx_meth_c_view_0(index_jsp.java:116)
         org.apache.jsp.index_jsp._jspService(index_jsp.java:80)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
         com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
         com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
         com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
         com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
         com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
         javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
         org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)here is the bean i don't see any problelme it uses JDBC to access the database/*
    * NwindManagedBean.java
    * Created on 4 mars 2007, 01:02
    package Core.walid;
    import java.sql.*;
    import javax.sql.*;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.io.*;
    import javax.servlet.jsp.jstl.sql.*;
    * @author walid
    public class NwindManagedBean implements Serializable{
        private String tableName="Customers";
        private ResultSet resultSet;
        private Connection connection;
        /** Creates a new instance of NwindManagedBean */
        public NwindManagedBean() {
        public String getTableName(){
        return tableName;
        public void setTableName(String tableName){
        this.tableName=tableName;
        public void open(){
        String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        String url = "jdbc:odbc:Nwind";
        String username = "";
        String password = "";
        try{
            Class.forName(driver);
            connection =DriverManager.getConnection(url,username,password);}
        catch(Exception e){System.out.println(e);}
        public void search(){
          try{ Statement statement=connection.createStatement();
           String query ="select * from "+tableName;
            resultSet=statement.executeQuery(query);
        catch(Exception cnfe) {};
        public ResultSet getResultSet(){
            open();
            search();
            return resultSet;
        public void showResults(){
            int i=1;
           try{ while(resultSet.next())
            System.out.println(resultSet.getString(i));
            i++;
           catch(Exception e){System.out.println("erreur sql"+e);}
    }i declared the bean in faces-config<faces-config>
        <managed-bean>
            <managed-bean-name>NwindManagedBean</managed-bean-name>
            <managed-bean-class>core.walid.NwindManagedBean</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
    </faces-config>and finally the jsf page to list the database contents<%@ taglib uri="http://java.sun.com/jsf/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <html>
       <HEAD><TITLE>Northwind Customers</title>
        </HEAD>
        <body>
            <center>
                <table border="5">
                    <tr><th class="Northwind customers"></th></tr>
                </table>
                <p>
                <c:view>
                    <h:dataTable value="#{NwindManagedBean.resultSet}"
                    var="dbRow"
                    border="1"
                    >
                    <h:column>
                    <c:facet name="header">
                    <c:verbatim>Company name</c:verbatim>
                    </c:facet>
                    <h:outputText value="#{dbRow.CompanyName}"/>
                    </h:column>
                    <h:column>
                    <c:facet name="header">
                    <c:verbatim>Address</c:verbatim>
                    </c:facet>
                    <h:outputText
                    value="#{dbRow.Address}"/>
                    </h:column>
                    <h:column>
                    <c:facet name="header">
                    <c:verbatim>City</c:verbatim>
                    </c:facet>
                    <h:outputText
                    value="#{dbRow.City}"/>
                    </h:column>
                    </h:dataTable>
                </c:view>
                </center>
        </body>
    </html>

    Hello,
    I'm not sure, but i would try to put the package only in lowercase.
    Your class pakageis declared with first Upper case letter.
    And in you faces-config file, you declared with lower case.
    Note : it's recommanded to use only lower case for package name.
    Regards,
    Sebastien Degardin

  • Javax.ejb.EJBException: nested exception is: java.rmi.RemoteException:

    package library.client;
    import javax.naming.InitialContext;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.lang.reflect.Method;
    import java.sql.ResultSet;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.swing.*;
    import library.common.*;
    @SuppressWarnings("serial")
    public class LibraryClient extends JFrame implements ActionListener {
      private static LibraryInterface li;
      private JTextField book_author = new JTextField(10);
      private JTextField book_title = new JTextField(10);
      private JTextField book_isbn = new JTextField(10);
      private JLabel author_label = new JLabel("Podaj autora:");
      private JLabel book_title_label = new JLabel("Podaj tytul ksiazki");
      private JLabel isbn_label = new JLabel("Podaj ISBN");
      private JTextArea display_books = new JTextArea(20,50);
      private JButton search = new JButton("Search");
      private ResultSet resultset;
      public LibraryClient() {
        this("DEFAULT_CONTEXT");
    private JPanel createPanel1(){
          JPanel panel = new JPanel();
          panel.add(author_label);
          panel.add(book_author);
          panel.add(book_title_label);
          panel.add(book_title);
          panel.add(isbn_label);
          panel.add(book_isbn);
          panel.add(search);
          ////search.setActionCommand("ISBN");
          search.addActionListener(this);
          return panel;
    private JPanel createPanel2(){
          JPanel panel = new JPanel();
          panel.add(display_books);
          return panel;
    private JPanel createPanels(){
         JPanel panel = new JPanel();
        //Use default FlowLayout.
        panel.setLayout(new BorderLayout());
        panel.add(createPanel1(), BorderLayout.NORTH);
        panel.add(createPanel2(), BorderLayout.SOUTH);
        return panel;
      public  LibraryClient(String appType) {
        init(appType);
        JFrame frame = new JFrame("Library");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //    /final Table table = new Table();
        frame.setContentPane(createPanels());
        frame.pack();
    //    /f.setLocationRelativeTo(null);
        frame.setVisible(true);
      public void actionPerformed(ActionEvent e) {
             try {
                  display_books.setText("");
                  display_books.setText("Wyszukane Ksiazki\n");
                  if(!book_author.getText().equals("")){
                       resultset=li.getBookByAuthor(book_author.getText());
                  }else if(!book_title.getText().equals("")){
                       resultset=li.getBookByName(book_title.getText());
                  }else if(!book_isbn.getText().equals("")){
                       resultset=li.getBookByISBN(book_isbn.getText());
                  }else {
                       System.out.println("Before->resultset=li.getAllBooks()");
                       resultset=li.getAllBooks();
                       System.out.println("After->resultset=li.getAllBooks()");
                  while(resultset.next()){
                       System.out.println("in while resultset.next()"); 
                       String name = resultset.getString("name");
                         String author =resultset.getString("author");
                         String isbn = resultset.getString("ISBN");
                         display_books.append("\n"+ name + " " + author +" "+ isbn);
             } catch(Exception exc) { exc.printStackTrace(); }
      private void init(String type) {
        if (type.equals("JAVA_APP")) li = new library.ejb.LibraryBean();
        else if (type.equals("JAVA_CLIENT")) {
          try {
            InitialContext ic = new InitialContext();
            li = (LibraryInterface) ic.lookup("library.common.LibraryInterface");
          } catch (NamingException e) {
            e.printStackTrace();
      public static void main(String[] args) {
        if (args.length >= 1) new LibraryClient(args[0]);
        else new LibraryClient();
    }it throws the exception when it gets to
    any of the functions
    resultset=li.getBookByAuthor(book_author.getText());
    resultset=li.getBookByName(book_title.getText());
    resultset=li.getBookByISBN(book_isbn.getText());
    resultset=li.getAllBooks();
    Please help
    Thank You

    Hi,
    I also get the same error.have you got the solution,fi so explain me how to rectify the error
    Regards
    SamyMohan

  • OAKeyflexBean with Codecombination region

    Hi All,
    I am using OAKeyflexBean to display the key flex field segments. I am having a flex field in OAF page which has cost allocation keyflex attached. when the user click on the LOV, there is a new popup window will be opened and it will display all the segments with create option. This is working very fine as i want.
    But, there is a region in the bottom which always shows all the existing combinations. suppose if i give any value in segment 4 and click on search, the result region gives all the existing combinations which has segment4 value... I don't what this to happen.. Is there any way to search only segment4. I mean, if i give value in segment4 and click on search, the resultset should display only the combination exist with segment4 value. not like it should display all the records which has segment4 value.
    Is there any way to hide that result region??
    Please give me your suggestions.
    Thanks in Advance.
    Mano

    Hi,
    can you try this? don't navigate to update page enter some crieteria and then click on GO and then again press clear button and then again click on GO and check, is it working fine?
    This works fine, the issue when I navigate back from update page. please find the below code in processFormRequest
    SearchCO
    if("update".equals(event))
    pageContext.setForwardURL("OA.jsp?page=/xxx/oracle/apps/..../webui/UpdatePG
    , null, (byte)0, null, null, true, "Y", (byte)99);
    UpdateCO
    if(pageContext.getParameter("Cancel") != null)
    am.invokeMethod("rollback");
    pageContext.forwardImmediately("OA.jsp?page=/xxx/oracle/apps/...../webui/SearchPG"
    , null, (byte)0, null, null, true, "N");
    public void rollback()
    Transaction txn = getTransaction();
    if(txn.isDirty())
    txn.rollback();
    Anyway Thanks for reply.
    Thanks,
    Nooker Satya

  • Search data into ResultSets to genrate a complex report

    Hi,
    I am writing a report called "Product Flow". The report headings are follows
    prodcode prod name opening qty purchase_qty sales_qty closing_qty
    =============================================================
    To achieve this, I need to know the products, their opening qty, their purchase qty, sales qty and finally I will I will calculate the closing stock.
    All this information is into different tables. I want to create 4-5 resultsets and then take the prodcut's resultset and scroll into it, take product one by one and then search its details into other resultset of opening, purchase and sales resultsets
    How can I do it with resultsets? can anyone guide me? I am very much new for Java.
    Thanks
    OMkar

    Dear,
    Evenif I use SQL join. While designing the report finally, do I not have to write some code to compare and search some data into various resultsets or some kind of collections?
    For example, in the above report, when I want to display report on screen, I will have to take the list of product and then search its values into tables and display it on the screen. So for this, do I not have to take the resultset of product table (rs) which will give me a list of product.
    use while (rs.next()) >
    take each product code
    search the values in other resultsets (to search these values in actual table may be time consuming becasue of huge size of table. If there are 500 products in the table, I will have to use the table for 500 times using SQL.
    Finally display the report on screen.How can I get more information about the collection type of resultset as u mentioned in the first reply? I will read the tutorials on SQL joins as you suggested and see if I can use it for this report.
    Thanks for the reply. I would high appreciate if you can guide me to achieve my aims of project I am doing my studies.
    Regards
    OMkar

  • Push MDM search results from webdynpro to portal's standard ResultSet iView

    Hi,
    I have gone thru a lot of SDN information, blogs and PDFs
    regarding the usage of EPCF, EPCM for communication between
    Webdynpro and Portal utlizing portal eventing phenomenon.
         My requirement a.k.a. predicament and grief::
    I get back mdm search results in webdynpro app, using a
    specialized search strategy to MDM repository. I need to
    ship these resuls off to the standard out-of-box
    portal's MDM ResultSet iView (which is a part of portal's
    MDM business package).
    I haven't had much success getting crisp resolution to
    satisfy my requirements. In my WD code, I know,  I need
    to put some sort of ?event-generating-2-liner-code? that
    sends my results to portal's standard iView.  
    Surely, I can send just recordIDs or I can send the actual
    results. I get 5 fields per record of Material's table.
    Once the ResultSet-iView displays the search results,
    my responsibility is over. Now onwards, portal's standard
    business package will take over from there for further user
    interacitons, like accessing item details etc..etc..
    Any and all help is highly appreciated.
    -Shashank Date

    No replies............yet.....It's been 2 days now.....
    Can someone provide some clues?
    thx.
    -Shashank Date

  • Pass search parameter to ResultSet iView.

    Hi,
    I am using standard MDM WebDynpro Components in which requirement is not to use Std. Search iView and pass search parameter say "xxxx" to Std. Result Set iView to show the result for "xxxx".
    Please let me know how shall I pass the value or default the search criteria in resultset
    - Akshay

    fine , but then ur record ids are selected based on a search parameter - isnt it ??
    how will then get the record ids , without knowing what to set
    you have to use search component here in the program  as a pre-requisite !
    this is like calling a webservice - with the java server down
    thanks
    -Adrivit

  • Searching for String literals in a ResultSet

    Hi! I am currently working in a little project in which one functionallity should be the possibility to search for customers over a special dialog. This dialog consists of a JTextField and a JTable. Now when the user enters e.g. 'a' in the textfield all the customers which include an 'a' at the beginning of their name should be displayed in the JTable. When the user enters a 'b' addtionally all users which fit the condition 'ab' are shown. Currently I requery the DB every time a key is pressed. But this is not very performant over the network. Is there a way to store a buffered ResultSet in RAM and make queries on this ResultSet?
    Thx

    ...but there must be a easier way to deal with it!Either you have all the data in the GUI or you don't. If you have it there then you have to get all of it. And then do something with it. If you don't get it all, then you are going to have to do a query each time. There is no other solution.
    You could do a partial solution, for example do the first query after they type the first letter and then after that handle the data yourself.
    (Keep in mind that this sort of GUI is 'really cool' but generally serves no pratical purpose particularily for large businesses. Day to day work doesn't support such usage.)

  • Multiple Field field search with multiple resultset

    I have 10 controls in a form and when a control is selected the rest of controls are re-populated
    Here's my table structure
    Field1
    Field2
    Field3
    Field4
    Field5
    Field6
    Field7
    Field8
    Field9
    Field10
    Bus
    Tyre
    Steering
    Engine
    Gear
    Fuel
    MultiSeat
    Bus
    Door
    Steering
    Engine
    Gear
    Fuel
    MultiSeat
    Car
    Tyre
    Steering
    Engine
    Gear
    Fuel
    2 Row Seat
    Car
    Door
    Steering
    Engine
    Gear
    Fuel
    2 Row Seat
    Bike
    Tyre
    Handbar
    Engine
    Gear
    Fuel
    Single Seat
    Pillion
    Cycle
    Tyre
    Handbar
    Pedalling
    Single Seat
    Carrier
    Each field is dependent on other field. By default DISTINCT rows in each field is returned as a result set as below:
    select distinct(field1) from table
    select distinct(field2) from table
    Upon selecting any of the item from the dropdown rest of the dropdowns are bound.
    Is there any simplistic approach available?

    Hi
    Try this
    Create a
    datraview for above table in .net
    Then use
    ToTable() method of datagridview  which return datatable
    to get distinct value pass true in
    toTable() method which return distinct row set for column specified in toTable method
    Mark as answer if you find it useful
    Shridhar J Joshi Thanks a lot

  • Mysterious closing ResultSets

    I'm getting desperate for a solution to this problem (as is the rest of the development team!).
    Basically we've been trying to create a system that automatically assigns values (frequencies) to objects (nodes) based on a rule set. Each node contains a varying number of sub-objects (radios) and each radio needs one frequency. The database has been set up and has test data for our Solution class to go through. However, we've run into an odd problem where our ResultSets are suddenly closing.
    The classes work like this:
    Database Broker (handles connection to DB, as well as executeQuery and executeUpdate statements.)
    Entry Broker (Holds all SQL statements for data retrieval in various methods. Each method contains an SQL statement to access data, and code to format that data into something useable by the main class.
    Solution/Main class (Contains methods to use the data from the Entry Broker to test valid solutions. Certain rules apply to assigning frequencies to radios and this class ensures that the data applies to these rules before it writes the data back to the DB (via the EntryBroker).
    The problem we continually run into is that whilst the ResultSets work fine in the Entry Broker, they are closed when they return to the Main class.
    Here's the catch: It seems in most cases that only the FIRST ResultSet returned in each method is closed, the remaining ResultSets work fine. We worked around this problem by creating a 'dummy' ResultSet, which obtained data from the database which was never used (the project name). We put this in its own try catch bracket so it would not interrupt the project.
    It worked fine for a few classes, but for others (notably the following one) it was ineffective. We've searched and searched but we cannot find anyone with a similar complaint (except a few people who have commented about ODBC version problems). Our ODBC version is 3.520.7713.0
    Here's an example method from the Solution class (The entire class is over 1000 lines):
    // Method to test Harmonic resonance for nodes within 10m
    private boolean resonanceGlobal (boolean tstResonanceG, double txFreq, double rxFreq, int distance)     {
    System.out.println("Beginning global harmonic resonance check");
    try {
    // Getting Nodes
    rsNode2 = eBroker.getNodes(projectNo);
    // node loop
    while (rsNode2.next())     {
    System.out.println("602 Test Marker GHarm 1");
    // get next node, store in nodeTemp
    nodeTemp = rsNode2.getInt(1);
    // System out to show which nodes will pass if statement
    System.out.println(node + " compare to " + nodeTemp);
    // avoid testing the same node against itself
    if (nodeTemp != node)     {
    // distance check (only neccesary within 10m)
    System.out.println("Test Marker Before Distance check");
    distance = getDistance(node, nodeTemp, distance);
    System.out.println("Test Marker After Distance check");
    // distance check if statement
    if (distance <= 10)     {
    System.out.println("618 Test Marker GHarm 2");
    // get the radios of the node, foreign node
    rsRadiosTemp = eBroker.getRadios(node);
    rsDummy = eBroker.getDummy(projectNo);
    rsRadios2 = eBroker.getRadios(nodeTemp);
    // This dummy ResultSet normally fails so that
    // the other ResultSets perform normally
    try {
    rsDummy.next();
    }     // end try
    catch (java.sql.SQLException dummyException)     {
    System.out.println("dummyException " + dummyException);
    }     // end catch
    // radio loop
    while (rsRadiosTemp.next())     {     // error occurs here
    System.out.println("627 Test Marker GHarm 3");
    // loop for foreign node radios
    while (rsRadios2.next())     {
    System.out.println("631 Test Marker GHarm 4");
    // get next radio
    radioTemp = rsRadios2.getInt(1);
    // get the TX and RX of the radio
    genericTX = getTX(radioTemp);
    radioTempCon = getConnection(radioTemp);
    genericRX = getTX(radioTempCon);
    // calculate bounds for harmonics test
    txLo = ((txFreq * 2) - genericTX) - 4;     // 4Mhz below TX harmonics check
    txHi = ((txFreq * 2) - genericTX) + 4;     // 4Mhz above TX harmonics check
    rxHi = ((rxFreq * 2) - genericRX) + 4;     // 4Mhz above RX harmonics check
    rxLo = ((rxFreq * 2) - genericRX) - 4;     // 4Mhz below RX harmonics check
    // checks TX and RX of foreign radio against TX, RX of current radio for separation
    if ((txLo > genericTX && txHi < genericTX) || (rxLo > genericRX && rxHi < genericRX))     {
    tstResonanceG = false;     
    break;
    } //end if
    else {
    tstResonanceG = true;
    }     // end else
    } //end foreign radio loop
    // breaking out of loops for return
    if (tstResonanceG == false)
    break;
    }     // end radio loop
    rsRadios2.close();
    rsRadiosTemp.close();
    }     // end sameradio check
    }     // end distance check
    }// end node loop
    rsNode2.close();
    }     // end try
    // Catch statement to stop from crashing in the
    // event of an error during SQL statements.
    catch (java.sql.SQLException resonanceGlobalException) {
    // Prints out the error message produced
    System.out.println(resonanceGlobalException);
    }     // end catch
    // returns result
    return tstResonanceG;
    } //end checkHarmonicResonanceGlobal()
    My apologies if it is a little hard to read, but the indenting is accurate. The Entry Broker methods which this method uses are here:
    public ResultSet getNodes (int projectNo) {
    // creating SQL statement
    sqlStatement = "SELECT nodeNo from tblNode WHERE projectNo = " + projectNo;
    System.out.println(sqlStatement);
    // executing SQL statement
    rsNodes = db.runQuery(sqlStatement);
    // returns ResultSet
    return rsNodes;
    }     // end getNodes
    // Method to get the distance between any two nodes
    public int getDistance (int projectNo, int node, int tempNode)     {
    ResultSet rsX1;                         // Used for obtaining the X-coord of node 1
    ResultSet rsX2;                         // Used for obtaining the X-coord of node 2
    ResultSet rsY1;                         // Used for obtaining the Y-coord of node 1
    ResultSet rsY2;                         // Used for obtaining the Y-coord of node 2
    double distance = 0;                    // Used in Global checks
    int dist = 0;                              // Used in Global checks
    int x1 = 0;                                   // Used in calculating distance
    int x2 = 0;                                   // Used in calculating distance
    int y1 = 0;                                   // Used in calculating distance
    int y2 = 0;                                   // Used in calculating distance
    int xDist = 0;                              // Used in calculating distance
    int yDist = 0;                              // Used in calculating distance
    int distint = 0;                         // Used to store converted values
    try {
    // get the X and Y co-ordinates of both nodes
    sqlStatement = "SELECT xCoord FROM tblNode WHERE nodeNo = " + node + " AND projectNo = " + projectNo;
    rsX1 = db.runQuery(sqlStatement);
    rsX1.next();
    x1 = rsX1.getInt(1);
    sqlStatement = "SELECT yCoord FROM tblNode WHERE nodeNo = " + node + " AND projectNo = " + projectNo;
    rsY1 = db.runQuery(sqlStatement);
    rsY1.next();
    y1 = rsY1.getInt(1);
    sqlStatement = "SELECT xCoord FROM tblNode WHERE nodeNo = " + tempNode + " AND projectNo = " + projectNo;
    rsX2 = db.runQuery(sqlStatement);
    rsX2.next();
    x2 = rsX2.getInt(1);
    sqlStatement = "SELECT yCoord FROM tblNode WHERE nodeNo = " + tempNode + " AND projectNo = " + projectNo;
    rsY2 = db.runQuery(sqlStatement);
    rsY2.next();
    y2 = rsY2.getInt(1);
    }     // end try
    catch (java.sql.SQLException getDistanceException) {
    System.out.println(getDistanceException);
    // calculating distance
    yDist = y2 - y1;
    xDist = x2 - x1;
    // perform pythagoras theorem for distance
    dist = (xDist * xDist) + (yDist * yDist);
    distance = java.lang.Math.sqrt(dist);
    Double roundFreqTemp = new Double(freqTemp);
    distint = roundFreqTemp.intValue() ;
    return distint;
    } // end get distance method
    // Method to get all the radios in a node
    public ResultSet getRadios(int node)     {
    ResultSet rsRadios;          // Used for obtaining radios in a node
    // creating sql Statement
    sqlStatement = "SELECT * FROM tblRadio WHERE nodeNo =" + node;
    System.out.println(sqlStatement);
    // executing sql Statement
    rsRadios = db.runQuery(sqlStatement);
    System.out.println("EB Test Marker 1: Line 261");
    // returning radio no
    return rsRadios;
    }//end getRadio
    public double getTX(int radioTemp){
    double txTemp = 0;     // Used for storing TX of a radio
    int freqNoTemp = 0; // Used for storing the frequency ID
    rsDummy = getDummy(projectNo);
    // creating SQL statement
    sqlStatement ="Select frequencyNo from tblRadio where radioNo = " + radioTemp;
    System.out.println(sqlStatement);
    // executing SQL statement
    rsTX = db.runQuery(sqlStatement);
    try {
    System.out.println("Test Marker EB1: 317");
    try {
    rsDummy.next();
    }     // end try
    catch     (java.sql.SQLException dummyException)     {
    System.out.println("dummyException" + dummyException);
    }     // end catch
    System.out.println("Test MarkerEB2: 330");
    // moving to first position in rs
    rsTX.next();
    System.out.println("Test MarkerEB3: 334");
    // obtaining data from rs
    freqNoTemp = rsTX.getInt(1);
    System.out.println("Test MarkerEB4: 337");
    rsTX.close();
    }     // end try
    catch (java.sql.SQLException rsTXException)     {
    System.out.println("rsTXExeption: " + rsTXException);
    }     // emd catch
    System.out.println("Frequency No is: " + freqNoTemp);
    rsDummy = getDummy(projectNo);
    sqlStatement = "Select frequency from tblFreq where frequencyNo = " + freqNoTemp;
    System.out.println(sqlStatement);
    rsRX = db.runQuery(sqlStatement);
    try {
    try {
    System.out.println("Test MarkerEB6: 361");
    rsDummy.next();
    }     // end try
    catch     (java.sql.SQLException dummyException)     {
    System.out.println("dummyException" + dummyException);
    }     // end catch
    System.out.println("Test MarkerEB5: 373");
    rsRX.next();
    System.out.println("Test MarkerEB7: 376");
    txTemp = rsRX.getDouble(1);
    System.out.println("Test MarkerEB8: 379");
    rsRX.close();
    }     // end try
    catch (java.sql.SQLException rxException) {
    System.out.println("rxException " + rxException);
    } // end catch
         System.out.println("393 Before return");
    return txTemp;
    }     //end getTX
    public int getConnection(int radio) {
    int nodeCon = 0;                    // Used to return the connected node no
    ResultSet rsConnection;          // Used for obtaining the foreign radio
    // creating SQL statement
    sqlStatement = "SELECT radioNo FROM tblRadio where recRadio = " + radio;
    System.out.println(sqlStatement);
    // executing SQL statement
    rsConnection = db.runQuery(sqlStatement);
    try {
    // moving to first position in rs
    rsConnection.next();
    // obtaining data from rs
    nodeCon = rsConnection.getInt(1);
    }     // end try
    catch (java.sql.SQLException getConnectionException) {
    System.out.println("getConnectionException : " + getConnectionException);
    }     // end catch
    // returns node no.
    return nodeCon;
    And finally, the dummy rs:
    // Dummy method to fix resultSet closed error
    public ResultSet getDummy (int projectNo) {
    sqlStatement = "Select projectName from tblProject where projectNo = " + projectNo;
    System.out.println(sqlStatement);
    rsDummy = db.runQuery(sqlStatement);
    return rsDummy;
    Here is some sample output that we have:
    ----jGRASP exec: java MainGui
    slider value constructor: 50
    116: if(singleton==null) {
    120: singleton=new Resolvotron
    Connection to D/Base establised
    Select projectName from tblProject where projectNo = 3
    Init OK. Beginning solve process
    main OK: beginning frequency assign process
    SELECT nodeNo from tblNode WHERE projectNo = 3
    267: Node number = 2
    SELECT * FROM tblRadio WHERE nodeNo =2
    EB Test Marker 1: Line 261
    Test Marker 1: Line 289
    298: Radio number = 4
    Test Marker 5: Line 308
    Test Marker 3: Line 313
    SELECT frequency from tblFreq WHERE projectNo = 3
    125.5
    Beginning test process
    Test Marker 4: Line 386
    Beginning check 257072
    Test Marker 6: Line 774
    70 Mhz Margin = false
    Beginning local 10Mhz separation check
    SELECT * FROM tblRadio WHERE nodeNo =2
    EB Test Marker 1: Line 261
    Getting TX of radio: 4
    Select projectName from tblProject where projectNo = 3
    Select frequencyNo from tblRadio where radioNo = 4
    Test Marker EB1: 317
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB2: 330
    Test MarkerEB3: 334
    Test MarkerEB4: 337
    Frequency No is: 2
    Select projectName from tblProject where projectNo = 3
    Select frequency from tblFreq where frequencyNo = 2
    Test MarkerEB6: 361
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB5: 373
    Test MarkerEB7: 376
    Test MarkerEB8: 379
    393 Before return
    432: getting connection
    SELECT radioNo FROM tblRadio where recRadio = 4
    438: getting TX of radio: 6
    Select projectName from tblProject where projectNo = 3
    Select frequencyNo from tblRadio where radioNo = 6
    Test Marker EB1: 317
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB2: 330
    Test MarkerEB3: 334
    Test MarkerEB4: 337
    Frequency No is: 2
    Select projectName from tblProject where projectNo = 3
    Select frequency from tblFreq where frequencyNo = 2
    Test MarkerEB6: 361
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB5: 373
    Test MarkerEB7: 376
    Test MarkerEB8: 379
    393 Before return
    java.sql.SQLException: ResultSet is closed
    10 Mhz Local = true
    Beginning 10 Mhz separation check
    SELECT nodeNo from tblNode WHERE projectNo = 3
    Node number is 2
    10 Mhz Global = false
    Beginning local harmonic resonance check
    SELECT * FROM tblRadio WHERE nodeNo =2
    EB Test Marker 1: Line 261
    Select projectName from tblProject where projectNo = 3
    Select frequencyNo from tblRadio where radioNo = 4
    Test Marker EB1: 317
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB2: 330
    Test MarkerEB3: 334
    Test MarkerEB4: 337
    Frequency No is: 2
    Select projectName from tblProject where projectNo = 3
    Select frequency from tblFreq where frequencyNo = 2
    Test MarkerEB6: 361
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB5: 373
    Test MarkerEB7: 376
    Test MarkerEB8: 379
    393 Before return
    SELECT radioNo FROM tblRadio where recRadio = 4
    Select projectName from tblProject where projectNo = 3
    Select frequencyNo from tblRadio where radioNo = 6
    Test Marker EB1: 317
    dummyExceptionjava.sql.SQLException: ResultSet is closed
    Test MarkerEB2: 330
    Test MarkerEB3: 334
    Test MarkerEB4: 337
    Frequency No is: 2
    Select projectName from tblProject where projectNo = 3
    Select frequency from tblFreq where frequencyNo = 2
    Test MarkerEB6: 361
    I'll leave it at that, since the program goes into an endless loop. The dummy Exceptions are our dummy resultsets crashing so the rest can survive. The other stuff is from different methods. You should be able to locate the logic of the program by following the System.outs
    Test Markers with EB refer to the Entry Broker.
    Any help would be appreciated since we cannot find any other way of running this class successfully.
    Steve

    Ok problem solved...
    Basically I was calling one ResultSet after another. Thanks to the Database Broker's structure, this was killing the first ResultSet. I fixed up the loops so that ResultSets were only ever called just before they were needed, and it fixed the problem. The only other errors were simple logic faults which I drummed out in short order. Thanks for the help everyone!

  • Closing resultsets in loop

    I have code that creates dynamic SQL statements in a loop to search for a value in a table. The Where clause is changed in each iteration of the loop until the value is found or the loop finishes. The code looks something like this:
    (Sorry for the crappy formatting of the code. I tried indenting lines, but when I previewed it, it aligned everything. Damn )
    /* NOTE: variables were changed to fit in this page better */
    for( int i = 9; i >=0;i--) {
    SelectSQL = new StringBuffer("SELECT col FROM tab WHERE ");
    for( int j = 0; j <= i;j++) {
    SelectSQL.append( "col" + j + "ID = " + Val[j]);
    if( j != i ) { SelectSQL.append(","); }
    stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,
    ResultSet.CONCUR_READ_ONLY );
    rs = stmt.executeQuery(SelectSQL.toString());
    if( rs.next() ) {
    ValID = rs.getLong(1);
    /* TODO: Should I be closing these in loops? */
    rs.close();
    stmt.close();
    if( ValID > 0 ) { break; }
    My question is: Do I need to close the resultset(rs) and statement(stmt) at the bottom of the loop? That does not seem very efficient to me, but I am not sure. Any advice would be greatly appriciated. Thanks for your time.

    declare the statement out of the loop and close it on the
    end (also out of the loop) so you reuse the statement each time,
    if the ResultSet is empty it closes, also if you loop through it it closes itself, when it is empty, but i recommend to close it each time you use it anyway (in the loop)
    don't forget, only select statements return a resultset .. others (delete, update) don't

  • Some java code returns a null resultset from 10.2.0.1 DB, but works w/ 9.2

    I am a Java noob guys, but we have java code the calls an Oracle Function. This code is unchanged from what successfully runs against an Oracle 9.2 database returning, in this case, one row from the database. A ref cursor is used. When the same Java code calls the same ref cursor function from a 10.2.0.1 database, a null resultset occurs. The function correctly returns a single row when executed by the same database user via sql-plus. So it must be a java thing. Does the jdbc driver need to be upgraded to correctly run against a 10.2 database? And is this null resultset type of anomaly a potential result of having a wrong version of ojdbc14.jar? Nothing else has changed except pointing the code to the same package and tables in a 10.2 database.
    Thanks in advance for your comments.
    Phil McDermott

    I realize now that this is the wrong forum to post in, but I was linked here from a google search on the issue.
    I downloaded the 10.2.0.1 ojdbc14.jar from oracle, but the problem persists.
    yeesh! now what?

  • Re: [iPlanet-JATO] Sorting a resultset

    Steve,
    Todd will probably address this more, but to set the stage for the discussion,
    I will chime in. As per your scenario "say a user wants to resort the results
    by some other column" , I think there needs to be some clarification on the
    life cycle of the model. You scenario implies that the user sees the data and
    then submits a request to sort the data. This implies that the access to the
    same data is spread across two HTTP requests.
    Unless explicitly or implicitly stored in session, the Model is a per request
    object. Therefore, under ordinary circumstances a new instance of Model is
    constructed per request and populated as needed. This is done for scalability
    reasons. Most applications would not scale properly if all model instances were
    kept around in session per user. There is also the issue of data integrity, a
    model stored in session may not reflect the current state of the RDBMS from
    which the data was previously retrieved, perhaps minutes before. So, the
    default action is to instantiate a new model and repopulate that model The
    normal solution would be to apply the sort criteria to the data retrieval at
    that point.
    What I described above is the norm and the default.
    If you have compelling reasons to prefer a single retrieval style, you have to
    be prepared to store the Model data in session. There are several methods
    within the ModelManager class which assist in this regard. You can see them
    described in the java doc.
    Also bear in mind that the SQLModelBase typically copies the data from the JDBC
    result set into JATO specific local storage. This is done because the JDBC
    result set is not as flexible as developer needs and requires the JDBC
    connection to remain open while it is used.
    I suspect that Todd will describe how you can manipulate the underlying JATO
    specific local storage to change the order. I just wanted to make sure you
    understood the life cycle issues involved and had justification for deviating
    from the default.
    Also, I'm still waiting for followup on the defaultCommandChild issue - we'd
    like to fix it for JATO 1.2.1 if it is a problem and so far your case is the
    only one we have heard of.
    ----- Original Message -----
    From: stephen_winer
    Sent: Wednesday, December 12, 2001 9:42 AM
    Subject: [iPlanet-JATO] Sorting a resultset
    If I want to sort a result set (Model) after the search has taken
    place (say a user wants to resort the results by some other column),
    can this be done without issuing another query? The reason I ask is
    that the next() method in the ResultSetModelBase calls synchronizeRow
    (), which resets the row, which sounds like a sort done outside of
    the SQL would be reverted.
    Steve
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    [Non-text portions of this message have been removed]

    The hidden field was present in the page, but it looked like this:
    <input type="hidden" name="jato.defaultCommand" value=""../search"">
    Seems like there is a small bug in the code generating this tag.
    FYI - I am using JATO1.2
    What file displays this text? Maybe I can go in and fix it and rejar
    it.
    Steve
    --- Mike Frisino wrote:
    Steve,
    Can you check the HTML source that shows up in the browser? Do you see an entry that looks like this at the bottom of the form in
    question?
    >
    <input type="hidden" name="jato.defaultCommand" value="/search">
    To answer your question - it should work as you described. Some of the JatoSample make use of the defaultCommandChild. Can you try
    running the sample BasicSample->Field Types and let us know what you
    see.
    >
    Failing this you can send me your jsp file , maybe there is some subtle issue there. michael.frisino@s...
    >
    >
    ----- Original Message -----
    From: stephen_winer
    Sent: Friday, December 07, 2001 8:05 AM
    Subject: [iPlanet-JATO] Using the defaultCommandChild in a form
    I am trying to set the defaultCommandChild in my jato:form tag to be
    the searcg button. The search button definition is:
    <jato:button name="search"/>.
    The form tag definition is:
    <jato:form name="PendingIA" defaultCommandChild="/search">
    Clicking on the search button works fine, but hitting return in one
    of the textFields (which submits the form) passes a value of "" to
    the createChild method in my viewBean, which throws an error. Why
    does this not just work as normal and trigger the handleSearchRequest
    () method?
    Steve
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    Service.
    >
    >
    >
    [Non-text portions of this message have been removed]

Maybe you are looking for

  • Udevd and creation of /dev/dvb/adapter0 fails for U3100 Asus

    Hello all, I have 3 arch PC's all running  3.14.4-1-ARCH properly updated. For some reason all 3 fail to create a /dev/dvb/adapter0 or adapter1 device when I plug in a dvb usb stick. The DVB USB stick from lsusb: Bus 006 Device 004: ID 0b05:1779 ASUS

  • Branch users in workgroup

    Hi! We have a branch connected to head office through IP-SEC tunnel without DC. Some of the users are laptop users and not connected to domain in head office. Is it possible to let them connect to head office network computers by NetBIOS names withou

  • Help please. I can't print email from icloud

    I've tried to print the body of a few different emails from a few different people from icloud on two different computers and five different printers at two different offices.  In all instances, I can view the email perfectly but when I print, either

  • How can I stop my iphone 4s from asking for my icloud, yahoo and other passwords all the time?

    How can I stop my iphone 4s from asking for my icloud, yahoo and other passwords all the time?

  • Cell Definition and Reverse sign Issue after upgrade

    Hi , we are having a issue here after upgrade to BI 7 from 3.1c . There is a Collision between Cell Definition and Reverse sign in the query designer. Issue is . We have Key Figure "Net Days AR" which has Reverse Sign Checked under properties. In 3.1