SQLEndTran
SQLEndTran#
연결과 관련된 모든 명령문에서 활성 중인 연산에 대해 commit 또는 rollback 연산을 요구할 수 있다. 또한, SQLEndTran()은 commit 또는 rolloback 연산이 환경과 관련된 모든 연결에 대해 수행될 수 있도록 요구할 수 있다.
구 문#
SQLRETURN SQLEndTran (
SQLSMALLINT handleType,
SQLHENV handle,
SQLSMALLINT type );
인 자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLSMALLINT | handleType | 입력 | SQL_HANDLE_ENV, SQL_HANDLE_DBC 중 하나이어야 한다. |
SQLHENV | handle | 입력 | handleType에 의해 표시된 type |
SQLSMALLINT | type | 입력 | 다음 두 값 중 하나 SQL_COMMIT SQL_ROLLBACK |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
설 명#
만약 handleType이 SQL_HANDLE_ENV 이고 handle이 유효한 환경 핸들이면 Altibase CLI 드라이버는 환경과 연관된 각 연결 핸들에 대해 SQLEndTran()을 호출할 것이다. Altibase CLI API를 호출하기 위한 handle 인자는 Altibase CLI의 환경 핸들일 것이다. 이 경우에 Altibase CLI 드라이버는 연결된 상태에서 type의 값에 따라 트랜잭션을 commit 하거나 또는 rollback 하기를 시도할 것이다.
만약 type이 SQL_COMMIT 이면 SQLEndTran()은 연결과 관련된 세션에 commit 요구를 내린다. 만약 type이 SQL_ROLLBACK 이면 SQLEndTran()은 연결과 관련된 세션이 rollback 요구를 내린다.
만약 수동 commit 모드이면 (SQL_ATTR_AUTOCOMMIT 명령문 속성을 SQL_AUTOCOMMIT_OFF로 지정한 SQLSetConnectAttr()을 호출함으로서) 새로운 트랜잭션은 트랜잭션내에 포함될 수 있는 SQL 문이 실행될 때 내부적으로 시작된다.
진 단#
SQLSTATE | 설명 | 부연설명 |
---|---|---|
HY000 | 일반 오류 |
관련 함수#
SQLFreeHandle
SQLFreeStmt
예 제#
< $ALTIBASE_HOME/sample/SQLCLI/demo_tran1.cpp 참고 >
SQLEndTran(SQL_HANDLE_DBC, dbc, SQL_COMMIT);