As not to have nested ResultSets, I am calling an ArrayList containing objects of the first ResultSet, finding a valid sub-set of data (in this case, part orders (OHORDn)) then saving (setting) the value in the first ArrayList ( aServicesH ).
The result set is contained within a loop - which takes too long. Commenting out (and related text) "rsParts = stmt.executeQuery(sqlParts);" allows it to run just fine.
try
{
stmt = conn.createStatement();
for (int x=0; x<aServicesH.size(); x++)
{
aPartNos = new ArrayList();
sqlParts = "SELECT OHORD# AS OHORDn " +
"FROM FRNDTA020.OHL93 "+
"WHERE OHOTYP='SI' " +
"AND OHFFN1="+ ((ServicesH)aServicesH.get(x)).getSRVNSH(); // grab service order number
// DEBUG: System.out.println("Parts: "+sqlParts);
System.out.println("getting parts... "+sqlParts);
rsParts = stmt.executeQuery(sqlParts); // why does this take so long?
while (rsParts.next())
{
System.out.println("part:"+x);
aPartNos.add(rsParts.getString("OHORDn"));
}
aPartNos.trimToSize();
//add parts arraylist to object
((ServicesH)aServicesH.get(x)).setPartNos(aPartNos);
} //for
}
catch (Exception ex)
{
ex.printStackTrace();
}
Suggestions please?
The result set is contained within a loop - which takes too long. Commenting out (and related text) "rsParts = stmt.executeQuery(sqlParts);" allows it to run just fine.
try
{
stmt = conn.createStatement();
for (int x=0; x<aServicesH.size(); x++)
{
aPartNos = new ArrayList();
sqlParts = "SELECT OHORD# AS OHORDn " +
"FROM FRNDTA020.OHL93 "+
"WHERE OHOTYP='SI' " +
"AND OHFFN1="+ ((ServicesH)aServicesH.get(x)).getSRVNSH(); // grab service order number
// DEBUG: System.out.println("Parts: "+sqlParts);
System.out.println("getting parts... "+sqlParts);
rsParts = stmt.executeQuery(sqlParts); // why does this take so long?
while (rsParts.next())
{
System.out.println("part:"+x);
aPartNos.add(rsParts.getString("OHORDn"));
}
aPartNos.trimToSize();
//add parts arraylist to object
((ServicesH)aServicesH.get(x)).setPartNos(aPartNos);
} //for
}
catch (Exception ex)
{
ex.printStackTrace();
}
Suggestions please?