0

resultset以下のコードでは、コンテンツをにコピーしていarraylistます。wileループの最初の部分、つまり while(RS.next())結果を返していますが、カーソルが次へ移動するとループ中に、つまりwhile(SR.next()) 「結果セットが閉じられています」と表示されます。私が間違っているところを助けてください。

       String SSQ =   "select DISTINCT S_NUMBER from OTG.S_R_VAL" +

                    "  WHERE R_TS = (SELECT MAX(R_TS) FROM OTG.S_R_VAL) order by S_NUMBER";

              String SDS = "SELECT DISTINCT S_NUMBER FROM OTG.S_R_VAL AS STG WHERE S_NUMBER NOT IN" +

                            "(SELECT S_NO FROM OTG.R_VAL AS REV WHERE STG.S_NUMBER = REV.S_NO )";

              String SSR = "SELECT DISTINCT S_NO FROM OTG.R_VAL where S_NO != 'NULL' order by S_NO";

              String SSO =  "Select O_UID from OTG.OPTY where C_S_NO IN" +

             "( SELECT DISTINCT S_NUMBER FROM OTG.S_R_VAL AS STG WHERE S_NUMBER NOT IN(SELECT S_NO FROM OTG.R_VAL AS REV WHERE STG.S_NUMBER = REV.S_NO ))";

              //Statement statement;

            try {

         connection = DatabaseConnection.getCon();

         statement = connection.createStatement();

         statement1 = connection.createStatement();

         statement2 = connection.createStatement();

         statement3 = connection.createStatement();

         statement4 = connection.createStatement();



      ResultSet RS = statement1.executeQuery(selectQuery);

      ResultSet DS = statement2.executeQuery(Distinct_SiebelNo);

      ResultSet SR = statement3.executeQuery(SiebelNo_Rev);

      ResultSet SO = statement4.executeQuery(selected_OppId);




      ArrayList<String> RSList = new ArrayList<String>(); 

      ArrayList<String> SRList = new ArrayList<String>();

     /* ResultSetMetaData resultSetMetaData = RS.getMetaData();

      int count = resultSetMetaData.getColumnCount();*/

     int count=1;

      System.out.println("******count********"+count); 

      while(RS.next()) {

          int i = 1;

          count=1;

          while(i < count) 

                      {

              RSList.add(RS.getString(i++));

                  }

          System.out.println(RS.getString("SIEBEL_NUMBER"));


          RSList.add(  RS.getString("SIEBEL_NUMBER"));


        }

    /*  ResultSetMetaData resultSetMetaData1 = SR.getMetaData();

      int count1 = resultSetMetaData1.getColumnCount();*/

      int count1=1;

      while(SR.next()) {

          int i = 1;

          while(i < count1) 

                      {

              SRList.add(SR.getString(i++));

                  }

          System.out.println(SR.getString("SIEBEL_NO"));

          SRList.add(  SR.getString("SIEBEL_NO"));


        }SR.close();

    connection.commit();


} catch (SQLException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

    }
  }
}
}
4

2 に答える 2

0

RS2 番目のループ (System.out.println行)で最初の結果セット ( ) を使用しています。

于 2013-08-27T09:39:21.140 に答える