2014-01-15 7 views
0

남자 여기 제가 무엇을 가지고 있습니다. MSACCESS 그것을 통해 실행 현재 오류[Microsoft] [ODBC 드라이버 관리자] 잘못된 커서 상태

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state 

이며 이것은 단지 1 열 1 개 행을 반환하는 오류

String query3 = "SELECT Last(threadID) AS thread2 FROM msthread"; 
ResultSet rs = stmt.executeQuery(query3); 
rs.getString("thread2"); 

에게 그 쿼리의 결과를 일으키는 일 그게의 조각 내가보고 싶은 것을 정확히 보여주었습니다.

This is exactly what it looks like:  
thread2 
43 

하지만 지금은 잘못된 커서 상태 오류가 계속 발생합니다. 나는 이유를 모른다. 도움말들에 대한

덕분에

+1

가능한 중복 [java.sql.SQLException의를 : \ [마이크로 소프트 \] \ [ODBC 드라이버 관리자 \] 잘못된 커서 상태 (http://stackoverflow.com/questions/7391876/java-sql-sqlexception-microsoftodbc-driver-manager-invalid-cursor-state) –

답변

2

당신은 당신이 값을 검색 할 수 있습니다 전에 ResultSetnext()를 호출해야합니다.

그래서 사용

if (rs.next()) { 
    rs.getString("thread2"); 
} 

(또는 while 루프)의

+0

정답입니다. 자세한 것은 JavaDoc를 참조하십시오 : ResultSet 객체는 현재 데이터 행을 가리키는 커서를 유지합니다. 초기에 커서는 첫 번째 행 앞에 위치합니다. ' – Bludzee

관련 문제