
	                	                 
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