개요
ODBC 함수, SQLFreeStmt의 사용방법에 대한 설명입니다.
적용버전
- ALTIBASE HDB 6.3.1 을 기준으로 작성 되었습니다.
- 추가사항 또는 업데이트가 필요한 경우 http://support.altibase.com/kr/ 또는 이 페이지에 댓글로 요청 글 남겨주세요.
SQLFreeStmt 옵션
다음과 같은 4가지 옵션의 내용을 기술하고 있습니다.
SQL_CLOSE | stmt와 관련된 커서를 닫고 모든 보류중인 결과들을 폐기한다. 애플리케이션은 같은 또는 다른 변수들을 사용해 다시 SELECT 문을 수행함으로서 나중에 이 커서를 다시 열 수 있다. 만약 어떠한 커서도 열려 있지 않으면, 이 옵션 애플리케이션에 대해 아무런 영향을 주지 않는다. |
SQL_DROP | 입력 명령문 핸들과 연관된 자원이 해제되고 핸들이 무효화된다. 열린 커서가 있는 경우 닫히고 모든 미결인 결과가 삭제된다. |
SQL_UNBIND | 이 명령문 핸들에서 이전의 SQLBindCol() 호출에 의해 바인드된 모든 열이 해제된다. |
SQL_RESET_PARAMS | 이 명령문 핸들에서 이전의 SQLBindParameter() 호출에 의해 설정된 모든 매개변수가 해제된다. 애플리케이션 변수 또는 파일 참조와 명령문 핸들의 SQL문 매개변수 마커 사이의 연관이 깨진다. |
이 중 주로 사용되는 것이 SQL_CLOSE, SQL_DROP입니다.
- SQLFreeStmt(stmt, SQL_DROP):
prepared 된 stmt(statement handle)에 대한 자원을 완전히 해제한다는 의미가 됩니다.
즉 해당 stmt를 재사용하지 않을 때만 호출합니다. - SQLFreeStmt(stmt, SQL_CLOSE):
검색된 데이타를 모두 Fetch 하지 않았을 경우, SQLFreeStmt(SQL_CLOSE) 없이 SQLExecute를 다시 실행하면 오류가 발생합니다.
SQLFreeStmt(stmt, SQL_CLOSE)를 사용하면, SQLAllocStmt()를 하지 않고 기존 stmt를 재사용할수 있습니다.