SQLAllocStmt
SQLAllocStmt#
명령문을 위한 메모리를 할당하고 초기화한다.
하나의 연결에 1024개의 명령문까지 할당이 가능하다.
SQLAllocStmt()는 SQLAllocHandle()로 대체될 수 있다.
구 문#
SQLRETURN SQLAllocStmt (
SQLHDBC dbc,
SQLHSTMT * stmt );
인 자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLHDBC | dbc | 입력 | 연결 핸들 |
SQLHSTMT * | stmt | 출력 | 명령문 핸들의 포인터 |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
SQL_ERROR가 반환되면 stmt 인수가 SQL_NULL_STMT로 설정된다. 애플리케이션은 stmt 인수를 SQL_NULL_STMT로 설정하여 SQLError()를 호출해야 한다.
설 명#
Altibase CLI 드라이버는 각각의 명령문 핸들을 사용하여 모든 설명자, 결과 값, 상태 정보를 처리된 SQL 명령문과 연관시킨다. 각각의 SQL 문에 명령문 핸들이 있어야 하지만 다른 명령문에서 핸들을 다시 사용할 수 있다.
이 함수에 대한 호출시에서는 dbc가 사용 중인 데이터베이스 연결을 참조해야 한다.
명령문 핸들을 가리키는 입력 포인터가 이전의 SQLAllocStmt() 호출에 의해 할당된 유효한 명령문 핸들을 가리키면 원래의 값이 이 호출의 결과에 따라 바뀐다.
이것은 애플리케이션 프로그래밍 오류로 Altibase CLI 드라이버에 의해 감지되지 않는다.
이 함수를 호출하기 전에 SQLDriverConnect()를 호출해야 한다. 그리고 SQLPrepare(), SQLExecute(), SQLExecDirect() 또는 명령문 핸들을 입력 인수로 갖는 다른 함수 이전에 이 함수를 호출해야 한다.
진 단#
SQLSTATE | 설명 | 부연설명 |
---|---|---|
HY000 | 일반 오류 | stmt 수 (1024) 초과 |
HY001 | 메모리 할당 오류 | stmt를 위한 메모리 할당에 실패 함. |
HY009 | 유효하지 않은 인자 (null pointer) 사용 | stmt가 null pointer 임. |
HY010 | 함수 연속 오류 (연결이 되지 않거나 끊어진 상태) | dbc가 연결이 되있지 않거나 끊긴 상태 |
관련 함수#
SQLConnect
SQLFreeStmt
예 제#
< $ALTIBASE_HOME/sample/SQLCLI/demo_ex1.cpp 참고 >
/* Statement을 위한 메모리를 할당 */
if (SQL_ERROR == SQLAllocStmt(dbc, &stmt))
{
printf("SQLAllocStmt error!!\n");
return SQL_ERROR;
}