티스토리 툴바



제목 : 프로시저에서 ResultSet 가져오기 문제...
글쓴이: 손님(guest) 2008/07/08 17:18:09 조회수:1245 줄수:50
안녕하세요.

프로시저를 호출해서 OutPutParameter가 아니라, 
ResultSet이 나올때 어떤식으로 가져 올수 있는지 궁금합니다.
오라클의 경우엔 1번째 파라메타에 Type.Oracle.Cursor를 이용해서 

getObject(1) 이런식으로 얻어올수 있는것 같은데,
MSSQL일 경우에는 어떻게 ResultSet을 가져올 수 있는지 모르겠네요.

현재는 임시 방편으로 이런식으로 사용하고 있습니다.

ResultSet			rset	= null;
PreparedStatement		pstmt	= null;
CallableStatement		cstmt	= null;

DBUtil DBPool = new DBUtil();

String[] returnString = new String[3];

try {

	useQuery = new StringBuffer();
	useQuery.append("EXEC SPSL_10101 ?, ?, ?, ?, ?, ?   ");
	pstmt = conn.prepareStatement(useQuery.toString());
	pstmt.setString(1, pSpParam[0]);	// 사업장코드
	pstmt.setString(2, pSpParam[1]);	// 거래처코드
	pstmt.setString(3, pSpParam[2]);	// 거래처코드
	pstmt.setString(4, pSpParam[3]);	// 주문유형코드
	pstmt.setString(5, pSpParam[4]);	// 자료구분코드
	pstmt.setString(6, pSpParam[5]);	// 주문일자
	rset = pstmt.executeQuery();
	if ( rset.next() ) {
		returnString[0]	= rset.getString("cred_ck")			==null?"":rset.getString("cred_ck");
		returnString[1]	= rset.getString("lmt_ck")				==null?"":rset.getString("lmt_ck");
		returnString[2]	= rset.getString("rmd_ck")				==null?"":rset.getString("rmd_ck");
	} else {
		returnString = null;
	}

} catch ( Exception e ) {
	throw e;
} finally {
	DBPool.cleanup( pstmt, rset );
	try {	if ( cstmt != null ) cstmt.close(); } catch ( Exception e ) {}
}
return returnString;


cstmt에서 프로시저를 실행하여, ResultSet을 가져올수 있는 방법이 없을까요?
조언 부탁드립니다.
제목 : Re: 프로시저에서 ResultSet 가져오기 문제...
글쓴이: 서정호(sichiro) 2008/07/10 15:12:16 조회수:1108 줄수:16
CallableStatement cstmt = con.prepareCall("{CALL SPSL_10101(?, ?, ?, ?, ?, ?)}");
		
cstmt.setString(1, pSpParam[0]);
cstmt.setString(2, pSpParam[1]);
cstmt.setString(3, pSpParam[2]);
cstmt.setString(4, pSpParam[3]);
cstmt.setString(5, pSpParam[4]);
cstmt.setString(6, pSpParam[5]);
		
if(cstmt.execute()) {
// ResultSet 이 있는 경우
    ResultSet rs = cstmt.getResultSet()
}
else {

}


출처 : http://www.javaservice.com/~java/bbs/read.cgi?b=qna2&c=r_p&n=1215505089
Posted by 미르아