0
저장 프로 시저 클라이언트를 참조 할 때 두 개의 ResultSet을 가져옵니다. 모든 첫 번째는 잘하지만, 두 번째는 20 행으로 구성으로, 클라이언트 개발자는 절차에 대한 1000왜 Resultset가 다듬어 졌습니까?
Connect connectObject = new Connect();
Connection connectionToPool = null;
CallableStatement procedure = null;
ResultSet table = null;
int rowCounter;
SOATO answer = new SOATO();
int counter = 1;
try {
connectObject.init(POOL);
connectionToPool = connectObject.getConnection();
procedure = connectionToPool.prepareCall("{call procedure()}");
procedure.execute();
while (true) {
rowCounter = procedure.getUpdateCount();
if (rowCounter > 0) { // This is update counter
procedure.getMoreResults();
continue;
}
if (rowCounter == 0) { // DDL command or 0 updates
procedure.getMoreResults();
continue;
}
table = procedure.getResultSet(); // If we reached here, we have a
// set of data, or no more results
if (table != null) {
switch (counter) {
case 1: // Area tables
answer.areaDataHandler(table);
counter++;
break;
case 2: // Region tables
answer.regionDataHandler(table);
counter++;
break;
default:
break;
}
procedure.getMoreResults();
continue;
}
break; // No more results
}
} catch (SQLException e) {
e.toString();
} finally {
if (table != null) {
try {
table.close();
} catch (SQLException e) {
e.toString();
}
}
if (procedure != null) {
try {
procedure.close();
} catch (SQLException e) {
e.toString();
}
}
if (connectionToPool != null) {
connectObject.releaseConnection(connectionToPool);
}
}
return answer;
}
regionDataHandler()와 유사 areaDataHandler()
public void areaDataHandler(ResultSet table) throws SQLException {
while (table.next()) {
Area temp = new Area();
temp.setKodobl(table.getInt("kodobl"));
temp.setNameobl(table.getString("nameobl"));
area.add(temp);
}
}
- 데이터베이스를 반환 주장 - MSSQL 2000
- JDBC 드라이버 - jtds1.2.5
PS 엄격하게 중학교 및 나쁜 영어에 대한 미안을 판단하지 마십시오
클라이언트 개발자가 "청구 한 항목"을 확인하기 위해 수동으로 sql을 실행 했습니까? – jtahlborn
Eclipse 또는 다른 IDE를 사용하지 않고 SPROC를 호출 할 때 어떤 일이 발생하는지 디버깅하는 것이 어떻습니까? 여기에 SPROC를 표시하지 않으므로 도움이되지 않습니다. 나는 이것을 디버깅하는 것이 좋습니다, 이것은 당신을 도울 수 있습니다. –
그들은이 시스템에 더 관심이 있기 때문에 믿지 못할 이유가 없습니다. IDE에서만 디버깅 할 수 없거나 서버에서 SPROC가있는 데이터베이스에 연결할 수 없기 때문에 디버깅 할 수 없습니다. – Nekto