SQLAllocStmt()

Development/C/C++ 2011. 8. 13. 15:05

출처 : http://data.altibase.com/pdf/a3/htm/cli/ch03s04.html

 

SQLAllocStmt
Prev  Chapter 3. Altibase CLI 함수  Next


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가 연결이 되 있지 않거나 끊긴 상태

예 제

< $ALTIBASE_HOME/sample/SQLCLI/demo_ex1.cpp 참고 >
/* Statement을 위한 메모리를 할당 */
if (SQL_ERROR == SQLAllocStmt(dbc, &stmt))
{
    printf("SQLAllocStmt error!!\n");
    return SQL_ERROR;
}             
              
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,