Background Image

FORUM

조회 수 22135 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
안녕하세요.

이번에 큐브리드를 한번 사용해볼까 했는데, 심각한 문제에 봉착하게 되었습니다.
저의 오류인지 JDBC의 문제인지는 잘 모르겠습니다.

PreparedStatement pstmt = 생략...
"SELECT MENU_ID, MENU_NAME, MENU_URL, PRIV_ID, PARENT_MENU_ID, ORDER_NO, DEL_FLAG, CREATED_BY, CREATION_DATE, UPDATED_BY, UPDATED_DATE FROM BBS_MENU WHERE PARENT_MENU_ID IS NULL AND DEL_FLAG = 'N' ORDER BY ORDER_NO ASC" 를 사용해서
부모 메뉴가 없는 메뉴 정보를 읽어옵니다.
ResultSet rs = pstmt.executeQuery();

while (rs.next()) {
<!-- 문제의 시작 -->
// 여기에서 또다른 sql을 사용해서 결과를 가져옵니다.
// 대충 구현을 하자면
PreparedStatement pstmt2 = 생략...
"SELECT MENU_ID, MENU_NAME, MENU_URL, PRIV_ID, PARENT_MENU_ID, ORDER_NO, DEL_FLAG, CREATED_BY, CREATION_DATE, UPDATED_BY, UPDATED_DATE FROM BBS_MENU WHERE PARENT_MENU_ID = 'HOME' AND DEL_FLAG = 'N' ORDER BY ORDER_NO ASC"
ResultSet rs2 = pstmt2.executeQuery();
while(rs2.next()) {
 // 처리
}
<!-- 문제의 끝 -->
}

문제의 부분을 제거하고 실행하면, 결과 갯수가 5개라서 rs.next()가 총 6번 호출되는데,
문제의 부분이 들어가면 결과 갯수가 1개만 나옵니다. 즉 rs.next()가 총 2번 호출되는 묘한 상황이 연출되는것이죠.
PreparedStatement를 새로 생성해서 사용하는거라서 문제가 없을거 같은데, 이상한 결과가 나오는것입니다.

예전 DB(오라클 10g)에서 사용할때는 아무 문제가 없었는데, 제가 큐브리드의 특성을 잘못 파악해서 그런것인지 좀 알려주시면 감사하겠습니다.

그럼 좋은 하루 되시길 바랍니다. ^^

  • ?
    손승일 2010.01.15 01:05
    질의 결과를 가지고 순환하며 다시 질의 수행을 하여야 하는 중첩 statement 처리를 위해서 connection.setAutoCommit(false)로 설정하여야만 사용할 수 있습니다. 하나의 ResultSet close()되기 전에 다른 ResultSet을 생성할 경우 앞의 ResultSet autoCommit되어 ResultSet이 닫혀버리기 때문에 autoCommit false로 설정해야 합니다.
    conn.setAutoCommit(false);
    ResultSet rs = pstmt.executeQuery();
    while (rs.next()) {
      ... 
      ResultSet rs2 = pstmt2.executeQuery();
    }
    conn.commit();

    Statement를 생성하기 전에 autoCommit false로 설정하고 마지막에 commit()처리를 해주어야 합니다. Exception이 발생하면 rollback()처리도 해주어야 합니다.
  • ?
    강우 2010.01.15 19:42
    답변 감사합니다. ^^
    일단은 autoCommit을 false로 해서 처리했습니다. -> 잘되는군요 ^^
    그런데 단순히 읽기 전용(?)인 경우에도 autoCommit을 false로해서 처리해야하게 잘 이해가 안가네요.
    autoCommit이 true일때, 두번째 ResultSet이 생성된다고, 첫번째 ResultSet을 닫아버리는것은 뭔가 흠흠흠.
    그냥 큐브리드만의 특징인것이겠죠? ^^;;;;

  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views55
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4461
    read more
  3. CUBRID-8.2.1.0215 CentOs5.1에 설치 중입니다.

    Date2010.01.27 ByPhilip Park Views10439
    Read More
  4. 대용량 mysql 데이타를 큐브리드 2008 로 마이그레이션 할때

    Date2010.01.27 By초보 Views11023
    Read More
  5. 8.2.1버전에서 SQuirreL SQL Client 접속 가능한가요?

    Date2010.01.26 ByPhilip Park Views13350
    Read More
  6. php게시판에 있는 php설치 글에서.<? phpinfo.php ?>사용이 가능한 구문인가요?

    Date2010.01.26 By뚱기 Views34603
    Read More
  7. cubrid 6.6.0 제공 문의

    Date2010.01.25 By이종욱 Views7
    Read More
  8. 문자집합 변경에 대하여

    Date2010.01.25 By쭈난 Views11632
    Read More
  9. 엑셀 파일 임포트시 오류

    Date2010.01.25 By초보 Views23373
    Read More
  10. 문서 어떻게 다운받는 건가요?

    Date2010.01.25 By이종옥 Views9558
    Read More
  11. 큐브리드 방금 깔았는데요. 패스워드가

    Date2010.01.25 By이종옥 Views12187
    Read More
  12. 설치시 cubrid manager server start: fail 오류

    Date2010.01.24 By럭키늘보 Views16955
    Read More
  13. 데이터베이스 정지후 시작하니 로그파일이 사이즈가 0로 되며 시작이 안되는데?

    Date2010.01.24 By사람들 Views18
    Read More
  14. asp 레퍼런스가 있나요?

    Date2010.01.21 By바다왕자님 Views10357
    Read More
  15. 큐브리드 OLEDB 성능 문제 및 오류

    Date2010.01.18 By쭈난 Views14208
    Read More
  16. MySQL을 대체 할만한가요...?

    Date2010.01.17 By호비스 Views12503
    Read More
  17. 엄청난 DB 생성 소요 시간

    Date2010.01.16 By쭈난 Views10071
    Read More
  18. 패키지 분화가 가능할까요?

    Date2010.01.15 Byienfant Views9565
    Read More
  19. JDBC ResultSet에 대한 문의

    Date2010.01.15 By강우 Views22135
    Read More
  20. LOWER 오류가 왜 날까요?

    Date2010.01.15 By초보 Views10392
    Read More
  21. mysql의 rand() 함수 대체 문의

    Date2010.01.14 By초보 Views16018
    Read More
  22. DBCP사용중 CUBRID** 계열 클래스를 사용하려면?

    Date2010.01.14 By안지민 Views10270
    Read More
Board Pagination Prev 1 ... 170 171 172 173 174 175 176 177 178 179 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales