콘텐츠로 이동

SQLFreeHandle

SQLFreeHandle#

특정한 환경, 연결, 그리고 명령문 핸들과 관련된 자원들을 해제한다.

구 문#

SQLRETURN  SQLFreeHandle (
    SQLSMALLINT handleType,
    SQLHANDLE   handle );

인 자#

자료유형 인자 사용 설명
SQLSMALLINT handleType 입력 해제하고자 하는 핸들의 유형 SQL_HANDLE_ENV,SQL_HANDLE_DBC,SQL_HANDLE_STMT 중 하나이다. 만일 handleType이 위의 값들 중 하나가 아니면 SQLFreeHandle()은 SQL_INVALID_HANDLE을 반환한다.
SQLHANDLE handle 입력 해제될 핸들

결괏값#

SQL_SUCCESS
SQL_INVALID_HANDLE
SQL_ERROR

SQLFreeHandle()이 SQL_ERROR를 반환한다면, 핸들은 유효하다.

설 명#

SQLFreeHandle()은 SQLFreeEnv(), SQLFreeConnect()와 SQLFreeStmt() 함수를 대체할 수 있다.

애플리케이션은 핸들이 해제된 후에 핸들을 사용해서는 안된다.

환경 핸들 해제#

handleType이 SQL_HANDLE_ENV인 SQLFreeHandle()을 호출하기 전에, 애플리케이션은 그 환경하에 할당 된 모든 연결에 대해 handleType이 SQL_HANDLE_DBC인 SQLFreeHandle()을 호출해야만 한다. 그렇지 않으면, SQLFreeHandle()의 호출은 SQL_ERROR을 반환하고 그 환경과 임의의 활성화된 연결은 계속 유효한 상태를 유지한다.

연결 핸들 해제#

handleType이 SQL_HANDLE_DBC인 SQLFreeHandle()을 호출하기 전에, 만일 이 핸들상에 연결이 있다면 애플리케이션은 그 연결에 대해 SQLDisconnect()를 호출해야만 한다. 그렇지 않으면, SQLFreeHandle()의 호출은 SQL_ERROR를 반환하고 연결은 여전히 유효하다.

명령문 핸들 해제#

handleType이 SQL_HANDLE_STMT인 SQLFreeHandle()의 호출은 handleType이 SQL_HANDLE_STMT인 SQLAllocHandle() 함수의 호출로 할당된 모든 자원들을 해제한다. 애플리케이션이 보류중인 결과들을 가지고 있는 명령문을 해제하기위해 SQLFreeHandle()을 호출할 때, 보류중인 결과들은 삭제된다.

진 단#

SQLSTATE 설명 부연설명
HY000 일반 오류
HY001 메모리 할당 오류 명시된 핸들을 위한 메모리 할당에 실패 함.

관련 함수#

SQLAllocHandle

예 제#

< $ALTIBASE_HOME/sample/SQLCLI/demo_meta1.cpp 참고 >

if ( dbc != NULL ) 
{
    SQLFreeHandle( SQL_HANDLE_DBC, dbc );
}
if ( env != NULL ) 
{
    SQLFreeHandle( SQL_HANDLE_ENV, env );
}