MS SQL Server 2005 JDBC Driver 의 알려진 이슈
Statement object를 이용하여 쿼리 수행시 '서버에서 트랜잭션을 재개하지 못했습니다' 오류가 발생과 관련된
MS SQL Server 2005 JDBC Driver 의 알려진 이슈가 있습니다. (JDBC 1.2에서 FIX될 예정임)
이에 우선적으로 아래 Workaround로 문제가 해결되는지 체크가 필요할 것으로 보입니다.
JDBC 1.1에서 위 문제를 피하시려면 다음의 WORKAROUND를 사용하시면 됩니다.
1) Statement 대신 PreparedStatement 사용
또는,
2) Statement.getMoreResults() 및 Statement.getUpdateCount() 를 이용해 모든 Recordset이 처리되도록 코드 수정
sample code는 다음과 같습니다.
Statement stmt = conn.createStatement();
stmt.execute("exec testProcReturns");
int resultSetNum = 0;
for (boolean resultsEndOrUpdateCount = false;
;
resultsEndOrUpdateCount = !stmt.getMoreResults())
{
if (resultsEndOrUpdateCount)
{
int updateCount = stmt.getUpdateCount();
if (-1 == updateCount) // end of results
break;
System.out.println("Update count is: " +
updateCount);
}
else // result is ResultSet
{
ResultSet rs = stmt.getResultSet();
System.out.println("Found a
result set");
while (rs.next())
{
System.out.println("ResultSetValue: " + rs.getString(1));
}
rs.close();
}
}
stmt.close();
감사합니다
박 상 준
'개발자' 카테고리의 다른 글
[MS-SQL] Update ~ Select (0) | 2009.03.24 |
---|---|
[JAVA JDBC] Procedure with Multi ResultSet (0) | 2008.11.11 |
SQL 쿼리 : 시간 제한 만료 (0) | 2008.08.26 |
VB Script 에서 Java Script Function 호출하기 (0) | 2008.08.22 |
따옴표// 작은 따옴표 (0) | 2008.08.22 |