
db2_free_result 함수는 DB2 쿼리 결과를 해제하는 함수입니다. 이 함수의 파라미터는 단 하나이며, 쿼리 결과를 받은 stmt 변수의 이름입니다.
예를 들어, db2_exec_immediate 함수를 사용하여 쿼리 결과를 받은 후, db2_free_result 함수를 사용하여 결과를 해제하는 방법은 다음과 같습니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLCHAR *sqlstmt = "SELECT * FROM 테이블명";
SQLCHAR *result = NULL;
int result_len = 0;
// DB2 연결
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
SQLConnect(dbc, (SQLCHAR*)"DB명", SQL_NTS, (SQLCHAR*)"사용자명", SQL_NTS, (SQLCHAR*)"비밀번호", SQL_NTS);
// 쿼리 실행
SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
SQLExecDirect(stmt, (SQLCHAR*)sqlstmt, SQL_NTS);
SQLBindCol(stmt, 1, SQL_C_CHAR, &result, 100, &result_len);
// 쿼리 결과를 받은 후, 결과를 해제
db2_free_result(stmt);
// DB2 연결 해제
SQLDisconnect(dbc);
SQLFreeHandle(SQL_HANDLE_DBC, dbc);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 0;
}
db2_free_result 함수를 사용할 때 주의사항은 다음과 같습니다.
- 쿼리 결과를 받은 stmt 변수를 해제해야 하므로, stmt 변수를 사용하여 쿼리 결과를 해제해야 합니다.
- stmt 변수를 해제하지 않으면, DB2 연결이 종료되어도 stmt 변수는 메모리에 남아있을 수 있습니다.
- stmt 변수를 해제한 후, stmt 변수를 다시 사용할 수 없습니다.
2025-07-04 18:25