2013-12-12 3 views
0

이것은이 위대한 사이트에서의 첫 번째 질문입니다 : D자바에서 jdbc로 Access에 데이터를 삽입하십시오

나는 액세스 데이터베이스를 가지고 있습니다. 이 데이터베이스에는 4 개 팀으로 구성된 테이블이 있습니다. 이 팀은 점수가 있으며 가장 많은 점수를 가진 처음 두 팀을 분류하고 싶습니다. 마지막으로이 두 팀을 다른 테이블에 삽입하십시오.

아무 문제없이이 두 팀을 가져올 수 있습니다. "은 java.sql.SQLException : 유효하지 않은 커서 유형 : 1003"내 영어

public void Viertelfinale() 
    { 
     final String [] temp = new String[20]; 

     int i=0; 

     try { 
      st = con.createStatement(); 
      String sql = "SELECT * FROM tbl_Spielplan ORDER BY A_Punkte DESC"; 
      rs = st.executeQuery(sql); 

      while (rs.next()){ 
       temp[i] = rs.getString("A_Teams"); 
       i++; 
      } 

      rs.close(); 
      st.close(); 
      int j=0; 
      st = con.createStatement(); 
      String sql1 = "SELECT * FROM tbl_Viertelfinale"; 
      rs = st.executeQuery(sql1); 

      rs.next(); 
      rs.moveToInsertRow(); 
      rs.updateString("A_Teams", temp[0]); 
      rs.insertRow(); 

      rs.next(); 
      rs.moveToInsertRow(); 
      rs.updateString("A_Teams", temp[1]); 
      rs.insertRow(); 


     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

죄송합니다 : 난 다른 테이블에 삽입하려고하면 는하지만, 그것은 실수를 보여줍니다/

오류 :

java.sql.SQLException: Invalid Cursor Type: 1003 
    at sun.jdbc.odbc.JdbcOdbcResultSet.moveToInsertRow(JdbcOdbcResultSet.java:4306) 
    at Turnier.Schultunier.Viertelfinale(Schultunier.java:49) 
    at Turnier.Viertelfinale.<init>(Viertelfinale.java:94) 
    at Turnier.Viertelfinale$1.run(Viertelfinale.java:35) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 
    at java.awt.EventQueue.access$200(EventQueue.java:103) 
    at java.awt.EventQueue$3.run(EventQueue.java:694) 
    at java.awt.EventQueue$3.run(EventQueue.java:692) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

if 문을 사용하여 나중에'rs.next();를 테스트 해보십시오. –

+0

정확히 무엇을 의미합니까? – seriously

+0

당신이 얻고있는 전체 스택 추적을 추가하십시오. 또한 우리에게 그 줄을 가르쳐주세요. – Smit

답변

1

나는 Access에서 사용하려는 것으로 보이는 SELECT FOR UPDATE을 지원하지 않는다고 확신합니다. 대신 SELECT 쿼리 외에도 일반 UPDATE 문을 사용하십시오.

+0

테이블을 'temp [0]'으로 업데이트해야하고 업데이트 문에 쓸 수 없기 때문에 어떻게해야합니까? – seriously

관련 문제