SQLGetTypeInfo
SQLGetTypeInfo#
DB에서 지원되는 데이터 타입에 관한 정보를 반환한다. Altibase CLI 드라이버는 SQL 실행 결과에 대한 정보를 반환한다. 데이터 타입은 DDL 문에서 사용된다.
구 문#
SQLRETURN SQLGetTypeInfo (
SQLHSTMT stmt,
SQLSMALLINT type );
인 자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLHSTMT | stmt | 입력 | 명령문 핸들 |
SQLSMALLINT | type | 입력 | SQL 데이터 타입 |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
설 명#
SQLGetTypeInfo()는 Altibase에서 제공하는 데이터 타입에 대한 정보를 표준 결과 집합 형태로 반환한다. 현재 결과 집합은 TYPE_NAME에 대한 오름 차순으로 정렬되어서 반환된다.
진 단#
SQLSTATE | 설명 | 부연설명 |
---|---|---|
08S01 | 통신 회선 장애 (데이터 송수신 실패) | Altibase CLI 드라이버와 DB간에 함수 처리가 완료되기 전에 통신 회선 실패 |
HY000 | 일반 오류 | |
HY001 | 메모리 할당 오류 | Altibase CLI 드라이버가 함수를 실행하고 완료하기 위해 요구된 메모리를 할당할 수 없음 |
관련 함수#
SQLBindCol
SQLColAttribute
SQLFetch
예 제#
< $ALTIBASE_HOME/sample/SQLCLI/demo_info1.cpp 참고 >
if (SQLGetTypeInfo(stmt, SQL_ALL_TYPES) != SQL_SUCCESS)
{
execute_err(dbc, stmt, "SQLGetTypeInfo");
SQLFreeStmt(stmt, SQL_DROP);
return SQL_ERROR;
}
while ( (rc = SQLFetch(stmt)) != SQL_NO_DATA)
{
if ( rc == SQL_ERROR )
{
execute_err(dbc, stmt, "SQLGetTypeInfo:SQLFetch");
break;
}
SQLGetData(stmt, 1, SQL_C_CHAR, szTypeName, STR_LEN, &cbTypeName);
SQLGetData(stmt, 2, SQL_C_SSHORT, &DataType, 0, &cbDataType);
SQLGetData(stmt, 3, SQL_C_SLONG, &ColumnSize, 0, &cbColumnSize);
SQLGetData(stmt, 9, SQL_C_SSHORT, &Searchable, 0, NULL);
SQLGetData(stmt, 14, SQL_C_SSHORT, &MinScale, 0, &cbMinScale);
SQLGetData(stmt, 15, SQL_C_SSHORT, &MaxScale, 0, &cbMaxScale);
SQLGetData(stmt, 16, SQL_C_SSHORT, &SQLDataType, 0, &cbSQLDataType);
SQLGetData(stmt, 18, SQL_C_SLONG, &NumPrecRadix, 0, &cbNumPrecRadix);
printf("%-20s%10d%10d%10d\t",
szTypeName, DataType, ColumnSize, SQLDataType);
if ( Searchable == SQL_PRED_NONE )
{
printf("SQL_PRED_NONE\n");
}
else if ( Searchable == SQL_PRED_CHAR )
{
printf("SQL_PRED_CHAR\n");
}
else if ( Searchable == SQL_PRED_BASIC )
{
printf("SQL_PRED_BASIC\n");
}
else if ( Searchable == SQL_SEARCHABLE )
{
printf("SQL_SEARCHABLE\n");
}
}