ResultSet merge

Does anyone know if there is a way of creating one result set from two?
I need to write a query to return results from two databases that can not talk to each other (!). The results are only seen after some java fantasticness has turned them into an excel spreadsheet using POI. I'm using a class I wrote that takes the ResultSet data and turns this into an excel spreadsheet. As I already have this class, I'd rather use it than write something new.
Basically however I look at it I get two ResultSet objects. I have three options - either find a way to merge the ResultSets (which I like the sound of, but can find no easy method to do this), use one of the ResultSets to write the sheet (leaving gaps) and fill in the gaps with the data from the other ResultSet, or write lots of new stuff that does this in another way.
Incidentally, whilst looking through the API (java 1.3, so depressing to be so backwards!) I cannot find an implementing class of the ResultSet interface. Obviously one must exist... but where is it and what is it called (as while I'm happy to consider extending this as an option, implementing all the methods of the interface sounds like a time-consuming struggle and a tremendous bore to boot!)??

The dbs are of two different types (Sybase and Oracle) and are both huge.
Also the db team is based mainly in Pune, India, so while they are very good at what they do, we are seperated by their general belief that they understand what I'm saying. As we're miles from them (London) I can't tell them what I want them to do with any degree of confidence in their accuracy at following my instructions. Basically I'm preempting human errors, and also have no idea how you would start connecting the two different dbs (If I cared about that sort of thing, I'd be a DBA).
I don't know hwat your experience of dealing with dedicated DBA's is, but mine is that if I have to rewrite this part of the program (so far a month and a half has been spent on this part), it will still be quicker than getting any major change done to an existing and robust db, let alone two. The amount of other systems that would have to be altered (albiet in a minor way) would be significant too. Of course, not being a DBa I'm probably missing a very quick easy way of effecting this change without these problems, but I generally find it easier to stick to what I know.

Similar Messages

  • Merge two resultsets into one column

    Hi Guys,
    I have two SQL statements. The first returns 12 columns and the second returns 2 columns but both return the same number of rows. I can't seem to merge both the queries into a common query as the WHERE clauses in both are different. I have to dump the output into a table i created. The table has 14 columns. One column in both queries act as primary key and they help form the relationship between the resultsets. The column name is SUBSCR_CODE. Below you will find my SQL queries and the CREATE TABLE statement. Please could someone tell me how to achieve this.
    SELECT o.subscr_code,
    SUM(NVL(m.remain_capital,0)),
    SUM(NVL(m.remain_interest,0)),
    SUM(NVL(m.remain_debtor_fee,0)),
    SUM(NVL(s.remain_debtor_fee,0)),
    SUM(NVL(m.remain_costs_to_client,0)),
    SUM(NVL(m.remain_debtor_outlay,0)),
    SUM(NVL(s.remain_debtor_outlay,0)),
    SUM(NVL(m.debtor_exp_outlay,0)),
    SUM(NVL(s.debtor_exp_outlay,0)),
    SUM(NVL(m.vatbase_debtor_fee,0)),
    SUM(NVL(s.vatbase_debtor_fee,0)),
    NULL
    FROM kkrpt1 o,
    maincase m,
    subcase s
    WHERE o.maincase_id = m.maincase_id
    AND m.maincase_id = s.mc_maincase_id
    AND s.claim_type IN (6,7,8,9,10,11,13)
    AND s.subcase_no = 0
    AND m.closing_date IS NULL
    AND s.closing_date IS NULL
    GROUP BY subscr_code;
    SELECT o.subscr_code,
    SUM(NVL(a.remain_interest,0))
    FROM kkrpt1 o,
    amount a,
    maincase m,
    subcase s
    WHERE o.maincase_id = a.mc_maincase_id
    AND o.maincase_id = m.maincase_id
    AND m.maincase_id = s.mc_maincase_id
    AND s.claim_type IN (6,7,8,9,
    10,11,13)
    AND s.subcase_no = 0
    AND m.closing_date IS NULL
    AND s.closing_date IS NULL
    AND a.amount_type = 41
    GROUP BY subscr_code;
    CREATE TABLE kk_ajot_14 (
    subscr_code VARCHAR2(5),
    remain_capital_sum NUMBER,
    remain_inerest_sum_1 NUMBER,
    remain_debtor_fee_sum_1 NUMBER,
    remain_debtor_fee_sum_2 NUMBER,
    remain_costs_to_client NUMBER,
    remain_debtor_outlay_1 NUMBER,
    remain_debtor_outlay_2 NUMBER,
    remain_debtor_exp_outlay_1 NUMBER,
    remain_debtor_exp_outlay_2 NUMBER,
    vatbase_debtor_fee_1 NUMBER,
    vatbase_debtor_fee_2 NUMBER,
    remain_inerest_sum_2 NUMBER);

    No need to create table
    with
    sql_1 as
    (<first sql here>
    sql_2
    (<second sql here>
    select a.*,b.*
      from sql_1 a,sql_2 b
    where a.subscr_code = b.subscr_codeRegards
    Etbin

  • Merge records from resultset by its unique key

    Java 1.6 - can someone help me, how to efficiently traverse through the resultset and merge the records by unique ID - coming from one - many relationship tables not using group by clause

    Order the results by the relevant value so you can work with all the results for a given id at the same time, then move to a new id.
    if you can't do that, then you have to keep all objects in memory, which, depending on the number of records, may cause memory problems.

  • MDM's merging feature in EP

    Hi,
    I want to add MDM's merging feature to the MDM ResultSet iView which is available with MDM Business packages for EP.
    Is there any way I can modify the ResultSet iView or do I have to create a new iView?
    Kindly help

    Hi,
    The MDM iViews do not currently provide a "merge" utility similar to that provided by the MDM Data Manager.
    Walter

  • ColdFusion Mail Merge?

    Hi,
    I am building a dynamic email and i wanted to see has anyone created a mail merge type email with ColdFusion?  I wanted the user to be able to have a set of fields to choose and type them into the body of the message.  When the email goes out, the fields like << First_Name >> or something like that would be replaced with the actual values from the db.
    Any insight on how I could do this would be great!
    Thanks,
    -Westside

    Piece of cake.  I do this sort of thing for neighborhood email blasts using a table that has everyone's name, email, etc., in it. Just use the rich text editor in a cfform to let the person compose the message - that gives them fonts, colors, etc., for formatting a nice message.  Come up with a simple meta syntax for how they type in the items that get replaced in the actual email with database items, just like you did in your example.   I wouldn't go the route of having the user type in using the #xxx# syntax because then you have to deal with possible errors when they spell things wrong, leave out a #, etc. Plus, the Rich text editor is going to mess with the # signs anyway.  Just come up with something like <firstname> or [firstname], etc.  Make it easy for the user by listing somewhere on the form page each of the possible things they can include - that way they can copy/paste if they want to.
    On the form processing page you just loop over the database resultset and use replaceNoCase() to replace each of those metas with the current row's database value, and then drop that modified variable into the cfmail tag:
         <cfmail from="ME" to="#queryname.you#" type="HTML">
              #form.thisIsTheContentFormVariable#
         </cfmail>
    If you're talking about sending a lot of emails you should check postings from about 4-6 weeks ago on the topic of using CF for mass mailings, and avoiding problems with your ISP that get you in hot water because they think you are a spam-bot.
    -reed

  • Best way to store data obtained from a resultset !?

    Hi all,
    I am working on a verification process that is to be run on our DB upon every external db extraction prior to merge into our DB (which is being done manually now)
    What I have decided so far is to have a verifier interface that is implemented by a bunch of *Verifier classes.
    Then depending on the level of verification, a subset of these verifiers would run and populate a generic result object (per verifier) with the query results and whether the verifier passed or not.
    I was thinking of having the Result class employ a JTable to store the query result (from a resultset), but I can't seem to find a way to retrieve the data from the Jtable row by row (I'd like to obtain the result from the JTable row by row as it would be easy to format) or the entire table to display for that matter.
    Please advise if you think this is a good approach? and if JTable's a good idea!? if yes, how should i use it? otherwise, what would you suggest?
    Thanks a lot,
    Cheers,
    parachuter2b

    BigDaddyLoveHandles wrote:
    There's no need for a "table". Use a List<YourBusinessClass>. If you don't know collections take the tutorial:
    |http://java.sun.com/docs/books/tutorial/collections/index.html]Thanks, that's what I sort of did:
    I figured how to use the ResultSetMetaData to get the column names and therefore generate a report from any query by having its resultset.
    so created a Result class, which holds the resultset of the query, plus a boolean that indicates whether the verification passed or not.
    Now what I have problem with is formatting the resultset and displaying it nicely in a report. The problem is that the length of the values in the resultset are variable and using constant indentation doesn't work. What's the easiest way to get around this apart from going through the resultset once before displaying the report to calculate the indentations for every single item?
    Thanks,
    parachuter2b

  • How does Merged Dimensions Work in WebI created on SAP BI Queries

    Hi,
    I need to know how does Merge dimensions work in WebI when using SAP BI Query as source?
    Below is my understanding when connection is defined for the universe on oracle database:
    1) To get the data in merged dimensions, there must be physical join (Either Direct or vai some other tables) between different tables at backend level (This means  there  must be join between tables in Oracle database.)
    2) we get the UNION of data when dimensions are merged at webI level.
    I dont know how this works in SAP BI.
    Since there is different data model defined for different BI Queries in SAP , and for each BI Query and there is seperate Universe, So how can you get correct data in WebI when there is no connections in DSO's used in different BI queries?
    Can any one suggest me the way data apperas in merged dimensions for WebI created on SAP BI?

    I assume we are only talking about merging dimensions in Web Intelligence here and not on the BW backend. this is a client side mere where you have 2 resultsets.
    if you want to do this on the BI server side it would be a multi-provider combining different InfoProviders - or a InfoSet - depending on the join type you need. MultiProvider is a union, Infoset allows you to choose
    Ingo

  • Merging X XML files, sorting the resultlist and finally execute a distinct?

    I have several questions about an XSLT file that I should write:
    1� First, I get X paths to XML files. It can be 2, 3, 4, ... whatever a number. I don't know exactly the total amount of XML files.
    I need to merge them dynamicly to one resultset.
    2� Next, I need to sort them on a specific node (remark: every XML file has the same DOM tree)
    3� Finally, I want to distinct the values because some of the nodes are in file 1, 2, 3 ... So I don't want duplicates.
    I guess this is not possible in XSLT? I can't use Java, so it should be done using XSLT ;;;

    Have a look here:
    [http://www.jenitennison.com/xslt/index.html|http://www.jenitennison.com/xslt/index.html]
    under the "Sorting" and "Grouping" sections. Also consider using XSLT 2.0, which has built-in grouping elements which make the convoluted XSLT 1.0 techniques unnecessary.

  • Creating new Layout problem with merged table within std_resources.htm

    Dear All,
    i am relatively new to oracle ucm and i am trying to add new comonent to create new layout from oracle Create and Modify Layout Sample Component* example under http://www.oracle.com/technetwork/middleware/content-management/index-092832.html .
    i want to ask about the following
    in this component i have CreateLayout_Layouts Table, CreateLayout_PublishedWeblayoutFiles Table and CreateLayout_PublishedStaticFiles Table. These tables should be merged with LmLayouts table, PublishedWeblayoutFiles table and PublishedStaticFiles table respectively in the std_resources.htm file in the <install_dir>/shared/config/resources directory.
    The problem is in my std_resources.htm file i have the following :
    <tr>
         <td>LmLayouts</td><td>LmLayouts</td><td>LmLayouts</td><td>id</td><td>label</td>
         <td></td><td>7.3</td><td>1</td>     
    </tr>
    how can i add (merge) the CreateLayout_Layouts Table in LmLayouts table? what is should fill the <td>s ?
    for PublishedWeblayoutFiles table and PublishedStaticFiles table they are not exist in my std_resources.htm file. are there names changed? or shall i add them(if yes, what is the <td>s had inside).
    note: i will be greatfull if someone have the std_resources.htm that have the above tables merged with the specified ones.

    I believe that sample is old. i have been pushing to get an updated version out also. Hopefully the fragmentary information I will give here will help.
    The main changes are dynamic data tables which replace the includes to control the menu items and relationships. The old things should work still but good to use the new. At the end is an example of merge rules.
    See 3.5.2 Dynamic Data Tables
    http://docs.oracle.com/cd/E21764_01/doc.1111/e10807/c03_components.htm
    ==============================
    CoreMenuItemRelationships table example
    <?commatable mergeKey="primaryKey" derivedColumns="primaryKey:parentId+id"?>
    parentId,           id,                loadOrder
    MY_CONTENT,      NEW_PAGE,                9000
    ================================
    CoreMenuItems table example
    <?commatable mergeKey="primaryKey" derivedColumns="primaryKey:parentId+id"?>
    id,                label,                linkType,           linkData
    NEW_PAGE,                    wwNewPage,                    cgi,                IdcService=GET_DOC_PAGE&Action=GetTemplatePage&Page=NEW_PAGE
    ============================
    CoreMenuItemsFlags table example
    <?commatable indexedColumns="id"?>
    id, flags
    WORK_IN_PROGRESS, isSubAdmin
    =======================
    CoreMenuItemsImages table example
    <?commatable indexedColumns="id"?>
    id, image, imageOpen
    ACTIVE_WORKFLOWS,      ReviewContent.gif,
    Glue file example: (note I am not willing to upload a zip file of a full component sorry)
    <?hda version="11gR1-dev" jcharset="UTF8" encoding="utf-8"?>
    @Properties LocalData
    ComponentName=NewLayout
    blDateFormat=M/d/yyyy {h:mm[:ss] {aa}[zzz]}!mAM,PM!tAmerica/Chicago
    hasPreferenceData=0
    preventAdditionalComponentDowngrade=0
    serverVersion=7.1
    version=2011_11_13-dev
    @end
    @ResultSet ResourceDefinition
    4
    type
    filename
    tables
    loadOrder
    resource
    resources/newlayout_resource.htm
    null
    10
    template
    templates/newlayout_template.hda
    null
    10
    resource
    resources/newlayout_strings.htm
    null
    10
    @end
    @ResultSet Filters
    4
    type
    location
    parameter
    loadOrder
    @end
    @ResultSet MergeRules
    4
    fromTable
    toTable
    column
    loadOrder
    NewLayout_Layouts
    LmLayouts
    id
    10
    NewLayout_PublishedWeblayoutFiles
    PublishedWeblayoutFiles
    path
    10
    NewLayout_PublishedStaticFiles
    PublishedStaticFiles
    null
    10
    NewLayout_LayoutSkinPairs
    LmLayoutSkinPairs
    null
    10
    NewLayout_Templates
    IntradocTemplates
    name
    10
    @end
    @ResultSet ClassAliases
    3
    classname
    location
    loadOrder
    @end

  • Pass ArrayList to jsp and display first index of resultset?

    Is it possible for me to pass an ArrayList to a jsp, and display the each resultset stored in the ArrayList by the ArrayList index?
    The code below gets passed two paramaters. An invorg, and item. It then creates resultset based upon the Object and puts the results into an ArrayList.
    The resultset returned varies, but the largest resultset that I have received back has not been bigger thatn 10 resultset rows, and the largest number of columns has been 27 columns.
    I would then like to pass the whole ArrayList to the jsp and display the contents for each row based on the index it is on.
    Is this possible?
    public class RunReportAction extends MTDAction
        ArrayList results;   
        public RunReportAction()
        public boolean execute(HttpServletRequest _req, HttpServletResponse _res) throws ServletException, IOException
            String item = _req.getParameter("itemsToAdd");
            String invorg = _req.getParameter("invorg");
            try
                if (rep_type.equals("Vendor"))
                    runVendorReport(item, invorg);
                else if (rep_type.equals("Purchase Order"))
                    runPOReport(item, invorg);
                else if (rep_type.equals("Inventory"))
                    runInventoryReport(item, invorg);
                else if (rep_type.equals("Item Usage"))
                    runWhereUsedReport(item, invorg);
                else if (rep_type.equals("Cost/Purchasing"))
                    runCostReport(item, invorg);
                else if (rep_type.equals("Planning"))
                    runPlanningReport(item, invorg);
            catch (Exception e)
                setView("SSMErrorPage.jsp");
                model = e;
            model = results;
            view = "SSM_Reports";
            return true;
        boolean runInventoryReport(String item, String invorg) throws MTDException
            try
                CallableStatement cs = conn.prepareCall("{call CTI_SSM_PKG.get_inventory_report(?,?,?)}");
                cs.registerOutParameter(3, OracleTypes.CURSOR);
                cs.setObject(2, item, Types.VARCHAR);
                cs.setObject(1, invorg, Types.VARCHAR);
                cs.execute();
                ResultSet rs = (ResultSet)cs.getObject(3);
                while (rs.next())
                    InventoryObj inventory = new InventoryObj();
                    inventory.setInvOrg(rs.getString(1));
                    inventory.setItem(rs.getString(2));
                    inventory.setItemDescription(rs.getString(3));
                    inventory.setInvFlag(rs.getString(4));
                    inventory.setStockEnabled(rs.getString(5));
                    inventory.setTransactable(rs.getString(6));
                    inventory.setRevQtyControl(rs.getString(7));
                    inventory.setReservable(rs.getString(8));
                    inventory.setCheckShortage(rs.getString(9));
                    inventory.setLotControl(rs.getString(10));
                    inventory.setShelfLife(rs.getString(11));
                    inventory.setLotStartPrefix(rs.getString(12));
                    inventory.setLotStartNumber(rs.getString(13));
                    inventory.setLotCycleCount(rs.getString(14));
                    inventory.setPosMeasureError(rs.getString(15));
                    inventory.setNegMeasureError(rs.getString(16));
                    inventory.setSerialGeneration(rs.getString(17));
                    inventory.setSerialNumbStart(rs.getString(18));
                    inventory.setSerialPrefixStart(rs.getString(19));
                    inventory.setLotStatus(rs.getString(20));
                    inventory.setSerialStatus(rs.getString(21));
                    inventory.setLotSplit(rs.getString(22));
                    inventory.setLotMerge(rs.getString(23));
                    inventory.setLocatorControl(rs.getString(24));
                    inventory.setToday(rs.getString(25));               
                    results.add(inventory); 
                    System.out.println(results);
            catch (SQLException e)
                throw (new MTDException("Failed to run report in database.", e));
            //model = results;
            //setView("SSM_Reports.jsp");
            return true;
    }jsp code:<%@ page import="java.util.*"%>
    <%@ page import="ssmmtd2.InventoryObj"%>
    <html>
    <head>
    <title> SSM 2 Inventory Report </title>
    <style>
              A {text-decoration:none;color:black;}
              A:Hover {color:Blue}
    </style>
    </head>
    <%
      ArrayList inventory;
      if (request.getAttribute("model") != null)
        if ((request.getAttribute("model").getClass().getName()).equals("java.util.ArrayList"))
          inventory = (ArrayList)request.getAttribute("model");     
          if (inventory != null && inventory.size() > 0)
          %>
        <body  bgcolor="#FFFFFF">
          <table border = "1" width="755" cellpadding="0" cellspacing = "0">
          <tr>
            <td colspan="3" width="755" align="center">
              <p align="center"><big><b><font color="#000080">Inventory Report</font></b></big>
            </td>
          </tr>
          </table>
          <table border="1" width="755">
            <tr>
              <td width="100%">
                <form>
                  <table>
                <%
                  Iterator i = inventory.iterator();
                  while (i.hasNext())
                    InventoryObj invObj = (InventoryObj)i.next();
                %>
                  <TR>
                    <TD><B>ITEM:</B>
                      <align="left" valign="center"><%=invObj.getItem()%>
                    <td><B>DESCRIPTION:</B>
                      <align="left" valign="center"><%=invObj.getItemDescription()%>
                  <TR>
                  </TR>
                  <TR>
                  </TR>
                  <TR>
                  </TR>
                    <td><B>ORGANIZATION:</B>
                      <align="left" valign="center"><%=invObj.getInvOrg()%>
                    </TD>
                    <TD>
                      <B>CURRENT DATE:</B>
                        <align="left" valign="center"><%=invObj.getToday()%></TD>
                    </TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                    <TR>
                      <TD><B>INVENTORY ITEM</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getInvFlag()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>STOCK ENABLED</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getStockEnabled()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>TRANSACTABLE</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getTransactable()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>REVISION QTY CONTROL</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getRevQtyControl()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>RESERVABLE TYPE</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getReservable()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>CHECK SHORTAGES</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getCheckShortage()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>LOT CONTROL</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotControl()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>SHELF LIFE DAYS</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getShelfLife()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>STARTING LOT PREFIX</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotStartPrefix()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>STARTING LOT NUMBER</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotStartNumber()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>CYCLE COUNT</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotCycleCount()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>POSITIVE MEASUREMENT ERROR</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getPosMeasureError()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>NEGATIVE MEASUREMENT ERROR</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getNegMeasureError()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>SERIAL GENERATION</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getSerialGeneration()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>STARTING SERIAL NUMBER</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getSerialNumbStart()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>STARTING SERIAL PREFIX</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getSerialPrefixStart()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>LOT STATUS</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotStatus()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>SERIAL STATUS</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getSerialStatus()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>LOT SPLIT</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotSplit()%>
                      </TD></TR>
                    <TR>
                      <TD><B>LOT MERGE</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLotMerge()%>
                      </TD>
                    </TR>
                    <TR>
                      <TD><B>LOCATOR CONTROL</B>
                      <TD align="left" valign="center"><b>:</B>  <%=invObj.getLocatorControl()%>
                      </TD>
                    </TR>
                <%} %>
                  </table>
                <input type="hidden" name="SearchValue">
                <BR>
                <img src="images/close11.bmp" style="cuinvObjor:hand" onmouseover='this.src="images/close12.bmp"' onmouseout='this.src="images/close11.bmp"' onClick="window.close()">     
                <img src="images/print1.bmp" style="cuinvObjor:hand" onmouseover='this.src="images/print2.bmp"' onmouseout='this.src="images/print1.bmp"' onClick='this.src="images/print3.bmp"; window.print()' >
                </form>
              </td>
            </tr>
          </table>
        </body>
    <%
    %>
    </html>

    Your arraylist object should be a list of inventory bean objects and then, If you are using struts, you could use logic:iterate tags.. or something equivalent.. you could use forEach in jstl..

  • A trigger returned a resultset and/or was running with SET NOCOUNT OFF while another outstanding result set was active

    I have 2 servers connected over a low speed wan and we're running SQL Server 2008 with Merge replication.
    At the subscriber, sometimes when attempting to insert new rows, I get this error:
    A trigger returned a resultset and/or was running with SET NOCOUNT OFF while another outstanding result set was active.
    My database doesn't have any triggers; the only triggers are the one created by the Merge replication
    Also, whenever this error occurs it automatically rolls back the existing transaction
    I am using DataTables and TableAdapters to
    insert and update the database using transactions
    What I have checked:
    the database log file size is below 50Mb
    Checked the source code for Zombie transactions (since I wasn't able to retrieve the actual error at the beginning)
    Checked the connection between the two servers and found it congested
    Questions:
    How to avoid this behavior and why it's occurring at first place?
    Why it's cancelling the open transaction?

    did the issue happen on some specific tables or all the tables?
    I suggest to run sql server trace at publisher and subscriber when the issue happens. Please involve below events and columns
    Stored      Procedures
    RPC:Completed      
    RPC:Starting
    sp:Completed
    sp:Starting
    sp:StmtStarting      
    sp:StmtCompleted      
    TSQL
    SQL:StmtCompleted
    SQL:StmtStarting      
    SQL:BatchCompleted
    SQL:BatchStarting      
    Unprepare SQL
     ‘Errors and Warnings’
    ErrorLog
    EventLog
    Exceptoin
    attention
    columns:
     TextData ,error, LoginName, ApplicationName , StartTime ,EndTime,DatabaseName,NestLevel,ObjectName,ObjectType,ServerName,eventsequence,linenumber,cpu,reads ,writes,rowcounts,clientprocessid,spid,transactionid
    Once the issue happens, please check the trace to find which step or statement hit the error.

  • 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!

  • Two resultset objects

    IS it possible to define two resultset objects with two different queries inside the same DB class?java.sql.SQLException: Invalid state, the ResultSet object is closed.
         at net.sourceforge.jtds.jdbc.JtdsResultSet.checkOpen(JtdsResultSet.java:299)
         at net.sourceforge.jtds.jdbc.MSCursorResultSet.next(MSCursorResultSet.java:1123)
         at DB5.getDetails(Daily_Quote_Response_report.java:238)
         at Daily_Quote_Response_report.main(Daily_Quote_Response_report.java:74)
    java.util.List items = null;
            String query;
            String query2;
            try {
                query =
                       "select * from oqrep_except_resp_summary";
                query2 = "select * from oqrep_except_resp_detail";
                Statement state = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                ResultSet rs = state.executeQuery(query);
                ResultSet rs2 = state.executeQuery(query2);
              //cannot create two rs objects // ResultSet rs2 = state.executeQuery(query);
                items = new ArrayList();Edited by: bobz on 03-Dec-2009 11:16
    Edited by: bobz on 03-Dec-2009 11:16

    Note: This thread was originally posted in the [Java Programming|http://forums.sun.com/forum.jspa?forumID=31] forum, but moved to this forum for closer topic alignment.

  • Questions on Merging Dis-similar Data Types...

    I am using Web-I version 11.5.8.834 (We do not use the Crystal Reports module, all of our reports are built with Web-I).
    I have two questions:
    Question 1: First I am attempting to create a report from two different universes and need to merge a dimension from each universe.  The two dimensions have similar data, but one is set up as a "string", and the other universe has the same data set up as a "number".  Our IT department creates and maintains the universes and I have requested that one of the dimension data type be changed to match the other, but I am told that other users have already set up reports using these dimensions and to change them at this point might cause a problem with their reports.  So my first question is: Can two separate dimensions be setup within a single universe, using the same data field, each having different data types (e.g., a field with numeric data be set up as a "string" and a second dimension be setup as a "number")?  If this works, I can make a recommendation to our IT department to do this and I will not have to resort to Question 2.  but just in case, here is Question 2:
    Question 2: I have two other dimensions that I might be able to use, but it requires creating a variable and "trimming" data off of each of the fields.  The first universe is a part number with three alpha characters followed by four numeric characters (PRT1234).  The second universe has a serial number, in which the first four characters match the last four characters of the other universe (1234-00111).  If I trim off the first three characters from the first universe using a variable (=right([Part_Number];4), and trim off the last six characters from the second universe using a variable (=left([Serial_Number],4), the variables will have matching data.  The second question is: Can variables be merged?  I've tried, but it isn't working so far.  If so, can someone give me some hints on how to do it?
    Edited by: Charles Norman on Aug 8, 2008 11:42 AM
    Edited by: Charles Norman on Aug 8, 2008 11:43 AM

    Charles,
    Can variables be merged?
    No, local variables cannot be merged.  The manipulation must be performed at the database level via Designer before the data comes across to the report.  As an aside, your IT deparatment can create "new" objects just for you, placed in the list under a separate sub-class that manipulates the data to your liking and will not upset other users who already built reports using the original columns of data.  I guess my point is that you can have multiple objects placed in your universe that derive from the same column in a given table -- user A has it per their flavor and user B has it per his flavor.
    Thanks,
    John

  • Can I merge several different Verizon plans (different family members each have own plans) into one plan (i.e. can I take over all their lines), if all lines on all plans are on Edge?

    I was originally told by Verizon that if I joined, I can eventually take over the lines of various family members.  Now that I've joined, and my family members all upgraded their phones and are on Edge, Verizon is telling us that we can't merge into one plan (because Edge lines can't be transferred to another account).
    Is this true, and, if so, what is my recourse since I was lied to.

    Well, yes and no (as far as being lied to).  I asked on several occasions (I have the chat transcripts to prove it) if there would be any issue if the lines were all already on Edge, and was told each time that under no circumstances would there be any issue.  The latest being today (I know it's after the fact, but I wanted proof that this is what the chat people are saying).  I asked "I have currently have an account with 3 phones on Edge.  My brother and his wife, and my parents, also have plans all on Edge.  I would like to 'take over' their lines.  I want to make sure there is no issue with the Edge plan and that I can simply 'take over' their lines with no problems."  I was told "Yes. That would be correct."  Again, this is what I was told in the past as well (my original post didn't make clear the timing of the chats and upgrades to Edge..).  Every time I chatted I mentioned that the accounts were going to be on Edge or (later on) were already on Edge.  Even before my family members upgraded to Edge, not one single chat or phone representative (and my brother asked the same thing in a store) mentioned NOT to upgrade to Edge because it couldn't be transferred.  Everyone just said yep, no problem.  The ONLY reason I even joined Verizon (I was on Straight Talk) was because of the More Everything and Edge plans (we wanted a family plan with 6 people and over 10GB so we'd each save $25/line).  Otherwise I never would have joined Verizon and my family wouldn't have upgraded either.

Maybe you are looking for