Tibero CLI 함수 (tbCLI 함수)
티베로 DB CLI 함수 (이하 tbCLI)를 소개합니다.
SQL-99 표준 API
SQLAllocConnect(Deprecated)
관련함수 SQLAllocConnect 함수는 ODBC 3.x에서 SQLAllocHandle 함수로 대체됩니다.
SQLAllocEnv(Deprecated)
애플리케이션 프로그램은 한 번에 하나의 환경을 사용할 수 있습니다. 이 함수는 환경 핸들과 연관된 메모리를 할당하고 초기화합니다.
환경 핸들을 할당받기 위해 SQLAllocConnect 등의 함수를 호출하기 전에 SQLAllocEnv 함수를 호출 해야 합니다. 그리고 호출한 이후에는 환경 핸들을 필요로 하는 모든 함수에 핸들이 전달됩니다. 참고로 SQL FreeEnv 함수를 호출하면 기존의 환경 핸들은 반환됩니다.
관련 함수 SQLAllocEnv 함수는 ODBC 3.x에서 SQLAllocHandle 함수로 대체됩니다.
SQLAllocHandle
환경, 연결, 문장 핸들을 할당할 때 사용하는 함수입니다. ISO 92 CLI/ODBC 3.0에서 지원하며, 자원, 환경, 명령문 핸들 초기화 및 메모리 할당을 수행하는 역할을 담당합니다.
문법
SQLRETURN SQLAllocHandle (SQLSMALLINT HandleType,
SQLHANDLE InputHandle,
SQLHANDLE *OutputHandle);
파라미터
파라미터
용도
설명
HandleType
입력
할당 받을 핸들의 타입
SQL_HANDLE_ENV
SQL_HANDLE_DBC
SQL_HANDLE_STMT
InputHandle
입력
입력 핸들 (핸들의 타입에 따라 다른 값을 갖는다.)
SQL_HANDLE_ENV : SQL_NULL_HANDLE
SQL_HANDLE_DBC : 환경 핸들
SQL_HANDLE_STMT : 연결 핸들
OutputHandle
출력
할당 받을 핸들의 포인터
(환경 핸들이 아닌 다른 핸들을 할당할 때 SQL_ERROR를 반환하는 경 우 OutputHandle 파라미터를 SQL_NULL_HDBC, SQL_NULL_HSTMT 로 할당한다.)
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08003
데이터베이스 연결이 존재하지 않는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY014
한정된 범위의 핸들 개수를 초과한 경우
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능(Optional feature)이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLAllocHandle 함수를 지원하지 않는 경우
관련 함수 SQLAllocHandle 함수는 SQLAllocConnect, SQLAllocEnv, SQLAllocstmt를 대체하는 함수입니다. ODBC 2.x 드라이버를 사용하는 애플리케이션 프로그램이 올바르게 동작하기 위해서는 SQLAllocHandle 함수를 SQLAllocConnect, SQLAllocEnv, SQLAllocstmt 함수로 적절하게 대체해야 합니다.
SQLAllocStmt(Deprecated)
tbCLI에서 설명자, 결과 값, 커서 정보, 상태 정보를 처리하기 위해 사용하는 문장 핸들을 할당받는 함수입니다. 이 함수를 호출하면 문장을 위한 메모리를 할당하고 초기화합니다. 하나의 데이터베이스 연결에 1,024 개의 문장을 할당할 수 있습니다.
관련 함수 SQLAllocStmt 함수는 ODBC 3.x에서 SQLAllocHandle 함수로 대체됩니다.
SQLBindCol
ISO 92 CLI/ODBC 1.0에서 지원하며, 결과 집합의 컬럼을 받아올 버퍼와 데이터 타입을 설정하는 함수입니다.
모든 데이터 타입에 대해 결과 집합의 컬럼을 애플리케이션 프로그램 변수에 연관시킵니다. 이 함수에 의해 참조된 위치는 SQLFetch 함수를 호출하기 전까지 갱신되지 않으며 유효한 상태로 남아 있습니다.
SQLFetch 함수가 호출되면 데이터가 데이터베이스 서버에서 애플리케이션 프로그램으로 전송됩니다. 따라서 SQLFetch 함수를 사용하기 전에 이 함수를 호출해야 합니다.
문법
SQLRETURN SQLBindCol (SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber,
SQLSMALLINT TargetType,
SQLPOINTER TargetValue,
SQLINTEGER BufferLength,
SQLINTEGER *StrLen_or_Ind);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ColumnNumber
입력
컬럼 번호
TargetType
입력
C의 데이터 타입
TargetValue
입/출력
컬럼을 받아 올 버퍼의 포인터
BufferLength
입력
byte 단위의 버퍼 크기
StrLen_or_Ind
입/출력
버퍼에 저장된 데이터의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
HY000
일반적인 에러
HY001
메모리 할당 에러
HY003
잘못된 애플리케이션의 버퍼 타입
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간이 만료된 경우
IM001
데이터베이스 연결 제한 시간을 초과한 경우
SQLBindParameter
ISO 92 CLI/ODBC 2.0에서 지원하며, SQL 문장에 파라미터를 바인드하는 함수입니다. 즉, SQL 문장의 파라미터를 애플리케이션 프로그램의 변수에 바인드합니다.
문법
SQLRETURN SQLBindParameter (SQLHSTMT StatementHandle
SQLUSMALLINT ParameterNumber,
SQLSMALLINT InputOutputType,
SQLSMALLINT ValueType,
SQLSMALLINT ParameterType,
SQLULEN ColumnSize,
SQLSMALLINT DecimalDigits,
SQLPOINTER ParameterValue,
SQLLEN BufferLength,
SQLLEN *StrLen_or_IndPtr);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ParameterNumber
입력
파라미터의 위치
InputOutputType
입력
파라미터의 종류
ValueType
입력
C의 데이터 타입
ParameterType
입력
SQL의 데이터 타입
ColumnSize
입력
정밀도
데이터 타입이 다른 경우 - SQL_CHAR : 최대 길이 - SQL_NUMERIC : 최대 십진 정밀도
DecimalDigits
입력
SQL_NUMERIC인 경우 소수점 아래의 자릿수
ParameterValue
입/출력
파라미터의 포인터
BufferLength
입력
버퍼의 최대 크기
StrLen_or_IndPtr
입/출력
입/출력된 데이터의 크기
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
HY000
일반적인 에러
HY001
메모리 할당 에러
HY003
잘못된 애플리케이션의 버퍼 타입
HY004
잘못된 SQL의 데이터 타입
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY021
모순이 있는(inconsistent) 서술자 정보
HY090
잘못된 문자열 또는 버퍼 길이
HY104
잘못된 정밀도 또는 스케일 값
HY105
잘못된 파라미터의 타입
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLBindParameter 함수를 지원하지 않는 경우
SQLCancel
ISO 92 CLI/ODBC 3.0에서 지원하며, 현재 실행 중인 SQL 문장의 수행을 취소시키는 함수입니다.
문법
SQLRETURN SQLCancel (SQLHSTMT StatementHandle);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY018
서버에 취소 요청이 받아들여지지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLCancel 함수를 지원하지 않는 경우
SQLCloseCursor
ISO 92 CLI/ODBC 3.0에서 지원하며, 커서를 해제하는 함수입니다. 즉, 현재 실행 중인 SQL 문장의 커서를 닫고 결과를 해제합니다.
문법
SQLRETURN SQLCloseCursor (SQLHSTMT StatementHandle);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLCloseCursor 함수를 지원하지 않는 경우
SQLColAttribute
ISO 92 CLI/ODBC 3.0에서 지원하며, 결과 집합의 특정 컬럼에 속성을 설정하여 해당 정보를 확인하는 함수입니다. 확인할 정보가 문자열이면 CharacterAttribute 파라미터에 반환되고, 숫자이면 NumericAttribute 파라미터에 반환됩니다.
이 함수를 호출하기 전에 SQLPrepare 또는 SQLExecDirect 함수를 호출해야 합니다.
문법
SQLRETURN SQLColAttribute (SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber,
SQLUSMALLINT FieldIdentifier,
SQLPOINTER CharacterAttribute,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength,
SQLPOINTER NumericAttribute);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ColumnNumber
입력
컬럼의 위치
FieldIdentifier
입력
확인할 정보
CharacterAttribute
출력
버퍼의 포인터
BufferLength
입력
버퍼의 최대 크기
StringLength
출력
반환되는 문자열의 길이
NumericAttribute
출력
반환되는 숫자
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
07005
커서의 범위가 아닌 준비된 문장인 경우
7009
잘못된 서술자 인덱스인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY091
잘못된 서술자의 필드 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLColAttribute 함수를 지원하지 않는 경우
SQLColAttributes(Deprecated)
SQLColAttributes 함수는 ODBC 3.x에서 SQLColAttribute 함수로 대체됩니다.
SQLColumnPrivileges
ISO 92 CLI/ODBC 1.0에서 지원하며 특정 테이블의 컬럼 리스트와 관련된 권한을 검색하거나 반환하는 함수입니다.이때 반환된 정보는 결과 집합의 형태로 나타납니다.
문법
SQLRETURN SQLColumnPrivileges (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3,
SQLCHAR *ColumnName,
SQLSMALLINT NameLength4);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
테이블 이름
NameLength3
입력
테이블 이름의 길이
ColumnName
입력
컬럼 이름
NameLength4
입력
컬럼 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLColumnPrivileges 함수를 지원하지 않는 경우
SQLColumns
XopenCLI/ISO 92 CLI/ODBC 1.0에서 지원하며, 특정 테이블의 컬럼이나 리스트에 대한 정보를 검색하고 결과 집합을 반환하는 함수입니다.
문법
SQLRETURN SQLColumns (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3,
SQLCHAR *ColumnName,
SQLSMALLINT NameLength4);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
검색할 스키마의 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
검색할 테이블의 이름
NameLength3
입력
테이블 이름의 길이
ColumnName
입력
검색할 컬럼의 ID
NameLength4
입력
검색할 컬럼 ID의 길이
반환 컬럼
컬럼 번호
컬럼 이름
데이터 타입
설명
1
TABLE_CAT
VARCHAR
카탈로그의 이름
2
TABLE_SCHEM
VARCHAR
스키마의 이름
3
TABLE_NAME
VARCHAR
(NOT NULL)
테이블이나 뷰의 이름
4
COLUMN_NAME
VARCHAR
(NOT NULL)
컬럼의 ID
5
DATA_TYPE
NUMERIC
(NOT NULL)
컬럼에 대한 SQL의 데이터 타입
6
TYPE_NAME
VARCHAR
(NOT NULL)
DATA_TYPE 컬럼을 나타내는 문자열
7
COLUMN_SIZE
NUMERIC
컬럼의 최대 크기
8
BUFFER_LENGTH
NUMERIC
데이터를 저장할 수 있는 최대 크기
9
DECIMAL_DIGITS
NUMERIC
컬럼의 소수 자릿수
10
NUM_PREC_RADIX
NUMERIC
10, 2, NULL 중의 하나의 값
DATA_TYPE 컬럼이 숫자형인 경우 : 2
COLUMN_SIZE 컬럼 : 삽입이 허용되는 비트의 수
11
NULLABLE
NUMERIC
(NOT NULL)
NULL 값이 가능한지 여부
12
REMARKS
VARCHAR
컬럼의 설명
13
COLUMN_DEF
VARCHAR
컬럼의 디폴트 값
14
SQL_DATA_TYPE
NUMERIC
(NOT NULL)
SQL의 데이터 타입
15
SQL_DATETIME_SUB
NUMERIC
내부 데이터 타입
16
CHAR_OCTET_LENGTH
NUMERIC
컬럼의 최대 자릿수
17
ORDINAL_POSITION
NUMERIC
(NOT NULL)
테이블 컬럼의 원래 위치
18
IS_NULLABLE
VARCHAR
로우가 NULL를 포함하는지 여부
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLColumns 함수를 지원하지 않는 경우
SQLConnect
ISO 92 CLI/ODBC 1.0에서 지원하며, 연결할 대상이 되는 데이터베이스를 설정하는 함수입니다. 애플리케이션 프로그램은 연결 대상인 데이터베이스에 SQL를 제공하고, 선택적으로 권한 및 인증과 관련된 정보를 제공할 수 있습니다.
이 함수를 호출하기 전에 SQLAllocConnect 함수를 호출해야 합니다.
문법
SQLRETURN SQLConnect(SQLHDBC ConnectionHandle,
SQLCHAR *ServerName,
SQLSMALLINT NameLength1,
SQLCHAR *UserName,
SQLSMALLINT NameLength2,
SQLCHAR *Authentication,
SQLSMALLINT NameLength3);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
ServerName
입력
데이터베이스 이름의 포인터
NameLength1
입력
데이터베이스 이름의 길이
UserName
입력
사용자 ID의 포인터
NameLength2
입력
사용자 ID의 길이
Authentication
입력
인증과 관련된 패스워드의 포인터
NameLength3
입력
인증과 관련된 패스워드의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08001
클라이언트가 서버에 연결하는 것이 불가능한 경우
08002
이미 사용 중인 데이터베이스 연결의 이름인 경우
08004
서버가 연결을 거부한 경우
08S01
서버와의 통신 연결에 실패한 경우
28000
잘못된 권한을 설정한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLConnect 함수를 지원하지 않는 경우
IM002
데이터소스의 이름을 찾을 수 없거나, 디폴트 드라이버가 존재하지 않 는 경우
IM003
설정한 드라이버를 로드할 수 없는 경우
IM004
해당 드라이버에 SQLAllocHandle 함수를 이용한 환경 핸들 할당에 실 패한 경우
IM005
해당 드라이버에 SQLAllocHandle 함수를 이용한 연결 핸들 할당에 실 패한 경우
IM006
드라이버에 SQLSetConnectAttr 함수를 이용한 데이터베이스 연결 속 성 설정에 실패한 경우
IM009
Translation DLL에 연결하는 것이 불가능한 경우
IM010
데이터소스의 이름이 SQL_MAX_DSN_LENGTH 파라미터에 설정된 값 보다 긴 경우
SQLCopyDesc
ISO 92 CLI/ODBC 3.0에서 지원하며 다른 서술자 핸들에 서술자 정보를 복사하는 함수입니다.
문법
SQLRETURN SQLCopyDesc (SQLHDESC SourceDescHandle,
SQLHDESC TargetDescHandle);
파라미터
파라미터
용도
설명
SourceDescHandle
입력
원본 서술자의 핸들
TargetDescHandle
입력
대상 서술자의 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08001
클라이언트가 서버에 연결하는 것이 불가능한 경우
08002
이미 사용 중인 데이터베이스 연결의 이름인 경우
08004
서버가 연결을 거부한 경우
08S01
서버와의 통신 연결에 실패한 경우
28000
잘못된 권한을 설정한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLCopyDesc 함수를 지원하지 않는 경우
IM002
데이터소스의 이름을 찾을 수 없거나, 디폴트 드라이버가 존재하지 않는 경우
IM003
설정한 드라이버를 로드할 수 없는 경우
IM004
해당 드라이버에 SQLAllocHandle 함수를 이용한 환경 핸들의 할당에 실패한 경우
IM005
해당 드라이버에 SQLAllocHandle 함수를 이용한 연결 핸들의 할당에 실패한 경우
IM006
드라이버에 SQLSetConnectAttr 함수를 이용한 데이터베이스 연결 속성의 설정에 실패한 경우
IM009
Translation DLL에 연결하는 것이 불가능한 경우
SQLDescribeCol
ISO 92 CLI/ODBC 1.0에서 지원하며, 결과 집합에서 특정 컬럼의 이름, 데이터 타입, 정밀도, 스케일, NULL의 허용 여부 등의 정보를 확인하는 함수입니다.
이 함수를 호출하기 전에 SQLPrepare 함수 또는 SQLExecDirect 함수를 호출해야 합니다.
문법
SQLRETURN SQLDescribeCol (SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber,
SQLCHAR *ColumnName,
SQLSMALLINT BufferLength,
SQLSMALLINT *NameLength,
SQLSMALLINT *DataType,
SQLUINTEGER *ColumnSize,
SQLSMALLINT *DecimalDigits,
SQLSMALLINT *Nullable);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ColumnNumber
입력
컬럼의 위치
ColumnName
출력
컬럼 이름의 포인터
BufferLength
입력
컬럼 이름을 저장하기 위한 버퍼의 크기
NameLength
출력
컬럼 이름의 길이
DataType
출력
컬럼의 데이터 타입
ColumnSize
출력
컬럼의 정밀도
DecimalDigits
출력
컬럼의 스케일
Nullable
출력
컬럼에 대한 NULL의 허용 여부
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
07005
커서의 범위가 아닌 준비된 문장인 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLDescribeCol 함수를 지원하지 않는 경우
SQLDescribeParam
ODBC 1.0에서 지원하며, 준비된 SQL 문장과 관련된 파라미터 기호의 서술자를 반환하는 함수입니다.
문법
SQLRETURN SQLDescribeParam (SQLHSTMT StatementHandle,
SQLUSMALLINT ParameterNumber,
SQLSMALLINT *DataType,
SQLUINTEGER *ParameterSize,
SQLSMALLINT *DecimalDigits,
SQLSMALLINT *Nullable);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ParameterNumber
입력
파라미터 기호의 번호
DataType
출력
파라미터에 대한 SQL의 데이터 타입
ParameterSize
출력
컬럼의 크기가 반환될 버퍼의 포인터
DecimalDigits
출력
컬럼의 정밀도가 반환될 버퍼의 포인터
Nullable
출력
해당 파라미터에 대한 NULL의 허용 여부가 반환될 버퍼의 포인터
SQL_NO_NULLS : NULL을 허용하지 않는다.
SQL_NULLABLE : NULL을 허용한다.
SQL_NULLABLE_UNKNOWN : NULL을 허용할 것인지를 결정할 수 없다.
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
21S01
삽입될 값의 리스트가 컬럼과 일치하지 않은 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLDescribeParam 함수를 지원하지 않는 경우
SQLDisconnect
ISO 92 CLI/ODBC 1.0에서 지원하며, 연결 핸들과 관련된 데이터베이스 연결을 종료하는 함수입니다. 이 함수가 호출되면 데이터베이스의 연결을 종료한 후 핸들을 해제합니다. 성공적으로 핸들이 해제되고 나서 SQLConnect 함수를 호출하는 경우 애플리케이션 프로그램은 연결 핸들을 다시 사용할 수 있습니다.
이 함수를 호출한 후 다른 데이터베이스에 연결하려면 SQLConnect나 SQLFreeConnect 함수를 사용해야 합니다.
문법
SQLRETURN SQLDisconnect (SQLHDBC ConnectionHandle);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01002
데이터베이스 연결을 해제하는 중에 에러가 발생한 경우
08003
데이터베이스 연결이 존재하지 않는 경우
25000
잘못된 트랜잭션 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLDisconnect 함수를 지원하지 않는 경우
SQLDriverConnect
CLI/ODBC 1.0에서 지원하며, 연결할 대상이 되는 데이터베이스를 설정하는 함수입니다. 이 함수는 SQLCon nect 함수에서 제공하는 3개의 파라미터보다 더 많은 연결 정보를 필요로 하는 데이터소스를 지원합니다.
이 함수를 호출하기 전에 SQLAllocConnect 함수를 호출해야 합니다.
문법
SQLRETURN SQLDriverConnect (SQLHDBC ConnectionHandle,
SQLHWND WindowHandle,
SQLCHAR *InConnectionString,
SQLSMALLINT StringLength1,
SQLCHAR *OutConnectionString,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength2Ptr,
SQLUSMALLINT DriverCompletion);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결핸들
WindowHandle
입력
사용하지 않음 (NULL 입력)
InConnectionString
입력
연결 문자열
연결 문자열은 keyword=value들로 구성되며 세미콜론(;)으로 구분한다.
Windows는 Keyword로 DSN, DESC(=Description), UID(=User), PWD(=Password), Server, Port, DB(=Database), SID, Connection Method, Option, Updatable Cursor를 제공한다.
Unix 계열은 Keyword로 DSN, DESC(=Description), UID(=User), PWD(=Password), SID, Option, Updatable Cursor를 제공한다.
Updatable Cursor를 True로 설정하면 해당 연결을 통해 가져온 결과 집합의 커서 타입이 KEYSET DRIVEN으로 적용된다. 설정하지 않을 시, 기본 커서 타입은 FORWARD ONLY이다.
StringLength1
입력
연결 문자열 길이
OutConnection String
출력
완성된 연결 문자열을 저장할 포인터
(최소 1024byte 크기의 버퍼를 주어야 하며, 여기에 NULL을 입력하면 BufferLength, StringLength2Ptr도 무시된다.)
BufferLength
입력
버퍼의 byte 크기
StringLength2Ptr
출력
버퍼에 저장된 데이터의 길이
DriverCompletion
입력
사용하지 않음 (SQL_DRIVER_NOPROMPT 입력)
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S02
옵션의 값이 바뀐 경우
08001
클라이언트가 서버에 연결하는 것이 불가능한 경우
08002
이미 사용 중인 데이터베이스 연결의 이름인 경우
08004
서버가 연결을 거부한 경우
08S01
서버와의 통신 연결에 실패한 경우
28000
잘못된 권한을 설정한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLDriverConnect 함수를 지원하지 않는 경우
IM002
데이터소스의 이름을 찾을 수 없거나, 디폴트 드라이버가 존재하지 않는 경우
IM003
설정한 드라이버를 로드할 수 없는 경우
IM004
해당 드라이버에 SQLAllocHandle 함수를 이용한 환경 핸들 할당에 실 패한 경우
IM005
해당 드라이버에 SQLAllocHandle 함수를 이용한 연결 핸들 할당에 실 패한 경우
IM006
드라이버에 SQLSetConnectAttr 함수를 이용한 데이터베이스 연결 속 성 설정에 실패한 경우
IM009
Translation DLL에 연결하는 것이 불가능한 경우
IM010
데이터소스의 이름이 SQL_MAX_DSN_LENGTH 파라미터에 설정된 값보다 긴 경우
SQLEndTran
ISO 92 CLI/ODBC 3.0에서 지원하며, 현재 트랜잭션을 커밋하거나 롤백하는 함수입니다. 커밋과 롤백 중 어떤 동작을 실행할 것인지는 SQLEndTran 함수의 CompletionType 파라미터로 결정됩니다.
만약 현재 동작 중인 트랜잭션이 없는 경우에는 데이터베이스 서버에 영향을 주지 않고, SQL_SUCCESS를 반환합니다.
문법
SQLRETURN SQLEndTran (SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT CompletionType);
파라미터
파라미터
용도
설명
HandleType
입력
할당 받을 핸들의 타입
SQL_HANDLE_ENV
SQL_HANDLE_DBC
Handle
입력
핸들의 포인터
CompletionType
입력
커밋 또는 롤백 여부를 나타내는 타입
SQL_COMMIT
SQL_ROLLBACK
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08003
데이터베이스 연결이 존재하지 않는 경우
08007
트랜잭션을 수행하는 중에 데이터베이스 연결에 실패한 경우
25S01
트랜잭션의 상태
25S02
트랜잭션이 아직 활성화되지 않은 경우
25S03
트랜잭션이 롤백된 경우
40001
직렬화에 실패한 경우
40002
무결성 제약조건에 위배되는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY012
잘못된 트랜잭션의 연산 코드인 경우
HY013
메모리 관리 에러
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLEndTran 함수를 지원하지 않는 경우
SQLError(Deprecated)
특정 명령문 및 데이터베이스 연결 또는 환경 핸들에 대해 가장 최근에 호출된 함수의 에러와 상태 정보를 반환하는 함수입니다.
관련 함수 SQLError 함수는 ODBC 3.x에서 SQLGetDiagRec 함수로 대체됩니다.
SQLExecDirect
ISO 92 CLI/ODBC 1.0에서 지원하며, 커밋이나 롤백 등의 트랜잭션과 관련된 문장을 제외한 나머지 SQL문장을 직접 실행하는 함수입니다.
커밋이나 롤백을 실행하기 위해서는 SQLTransact 함수를 호출해야 합니다. SQLExecDirect 함수를 호출하기 전에 모든 파라미터는 바인드되어야 하며, 연결할 데이터베이스 서버는 SQL 문장을 미리 준비해야 합니다. 이때 SQL 문장은 한 번만 실행됩니다.
문법
SQLRETURN SQLExecDirect (SQLHSTMT StatementHandle,
SQLCHAR *StatementText,
SQLINTEGER TextLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
StatementText
입력
SQL 문장
TextLength
입력
SQL 문장의 텍스트 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_NEED_DATA
SQL 문장을 실행하기 위해 데이터가 더 필요한 상태
(예: 파라미터)
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01001
커서 연산이 충돌된 경우
01003
설정된 함수에서 NULL 값을 제거한 경우
01004
문자열 데이터가 오른쪽에서 잘린 경우
01006
회수되지 않은 특권
01007
부여되지 않은 특권
01S02
옵션의 값이 바뀐 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07002
COUNT 필드에 오류가 있는 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07S01
디폴트 파라미터를 잘못 사용한 경우
08S01
서버와의 통신 연결에 실패한 경우
21S01
삽입될 값의 리스트가 컬럼과 일치하지 않은 경우
21S02
테이블의 degree가 컬럼과 일치하지 않은 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
22002
지시자 변수가 요구되었으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22008
DATETIME 필드에 오버플로우가 발생한 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
22019
잘못된 이스케이프 문자
22025
잘못된 이스케이프 시퀀스
23000
무결성 제약조건에 위배되는 경우
24000
잘못된 커서 상태인 경우
34000
잘못된 커서 이름
3D000
잘못된 카탈로그 이름
3F000
잘못된 스키마 이름
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
42000
문법 에러 또는 접근 위배가 발생한 경우
42S01
기반 테이블 또는 뷰가 이미 존재하는 경우
42S02
기반 테이블 또는 뷰를 찾을 수 없는 경우
42S11
인덱스가 이미 존재하는 경우
42S12
인덱스를 찾을 수 없는 경우
42S21
컬럼이 이미 존재하는 경우
42S22
컬럼을 찾을 수 없는 경우
44000
WITH CHECK OPTION에 위배되는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY105
잘못된 파라미터 타입
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLExecDirect 함수를 지원하지 않는 경우
SQLExecute
ISO 92 CLI/ODBC 1.0에서 지원하며, 준비된 SQL 문장을 한번 또는 여러번 실행하는 함수입니다. SQL 문장은 SQLBindParameter 함수를 사용하여 파라미터 마커(parameter maker)에 바인드된 애플리케이션 프로그램의 변수에 현재 값을 적용하여 실행됩니다.
애플리케이션 프로그램이 SQLExecute 함수를 사용하여 호출 결과를 처리하면, 애플리케이션 프로그램 의 변수에 새로운 값을 대입하여 SQL 문장을 다시 실행할 수 있습니다.
문법
SQLRETURN SQLExecute (SQLHSTMT StatementHandle);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_NEED_DATA
SQL 문장을 실행하기 위해 데이터가 더 필요한 상태
(예: 파라미터)
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01001
커서 연산이 충돌된 경우
01003
설정된 함수에서 NULL 값을 제거한 경우
01004
문자열 데이터가 오른쪽에서 잘린 경우
01006
회수되지 않은 특권
01007
부여되지 않은 특권
01S02
옵션의 값이 바뀐 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07002
COUNT 필드에 오류가 있는 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07S01
디폴트 파라미터를 잘못 사용한 경우
08S01
서버와의 통신 연결에 실패한 경우
21S01
삽입될 값의 리스트가 컬럼과 일치하지 않은 경우
21S02
테이블의 degree가 컬럼과 일치하지 않은 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
22002
지시자 변수가 요구되었으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22008
DATETIME 필드에 오버플로우가 발생한 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
22019
잘못된 이스케이프 문자
22025
잘못된 이스케이프 시퀀스
23000
무결성 제약조건에 위배되는 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
42000
문법 에러 또는 접근 위배가 발생한 경우
44000
WITH CHECK OPTION에 위배되는 경우
HY000
일반적인 에러
HY001
메모리할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY105
잘못된 파라미터 타입
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLExecute 함수를 지원하지 않는 경우
SQLExtendedFetch(Deprecated)
SQLExtendedFetch 함수는 ODBC 3.x에서 SQLFetchScroll 함수로 대체됩니다.
SQLExtProcRaiseError
External procedure 모듈을 위해서 지원하며, error를 발생시키는 함수입니다.
문법
void SQL_API SQLExtProcRaiseError(ExtProcContext *Context, int ErrorCode);
파라미터
파라미터
용도
설명
Context
입력
콘텍스트
ErrorCode
입력
에러 코드
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
SQLExtProcRaiseErrorWithMsg
External procedure 모듈을 위해서 지원하며, 메시지와 함께 error를 발생시키는 함수입니다.
문법
void SQL_API SQLExtProcRaiseErrorWithMsg(ExtProcContext *Context,
int ErrorCode,
char *ErrorMessage);
파라미터
파라미터
용도
설명
Context
입력
콘텍스트
ErrorCode
입력
에러 코드
ErrorMessage
입력
에러 메시지
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
SQLFetch
ISO 92 CLI/ODBC 1.0에서 지원하며, SQL 문장의 실행 결과에 대해 페치(fetch)를 실행하고 선택된 모든 컬럼의 데이터를 반환하는 함수입니다. 즉, 결과 집합 내에서 다음 행으로 커서를 이동하고 바인드된 컬럼을 가져옵니다. 바인드 되는 컬럼이 없는 경우 애플리케이션 프로그램으로 반환되는 데이터는 없으며 커서만 다음 행으로 이동됩니다.그리고 커서가 이동한 후 바인드되지 않은 컬럼의 데이터는 삭제됩니다.
SQLFetch 함수는 가장 최근에 실행된 SQL 문장이 SELECT 문일 때만 호출할 수 있습니다.
문법
SQLRETURN SQLFetch (SQLHSTMT StatementHandle);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S01
로우에 에러가 있는 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
22002
지시자 변수가 요구되었으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY107
결과 집합 영역 내에서 존재하지 않는 로우 번호를 참조하려는 경우
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLFetch 함수를 지원하지 않는 경우
SQLFetchScroll
ISO 92 CLI/ODBC 3.0에서 지원하며, 결과 집합 내의 특정 로우의 집합을 페치하고 선택된 모든 컬럼을 반환하는 함수입니다. 로우의 집합은 절대적 위치 또는 상대적 위치에 내용이 삽입됩니다.
문법
SQLRETURN SQLFetchScroll (SQLHSTMT StatementHandle,
SQLSMALLINT FetchOrientation,
SQLINTEGER FetchOffset);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
FetchOrientation
입력
스크롤 타입
SQL_FETCH_NEXT : 다음 행
SQL_FETCH_PRIOR : 이전 행
SQL_FETCH_FIRST : 첫 번째 행
SQL_FETCH_LAST : 마지막 행
SQL_FETCH_ABSOLUTE : 시작점을 기준으로 FetchOffset번째 행
SQL_FETCH_RELATIVE : 현재 행을 기준으로 FetchOffset번째 행
FetchOffset
입력
페치될 행의 번호
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S01
로우에 에러가 있는 경우
01S06
결과 집합이 첫 번째 행의 집합을 반환하기 전에 페치를
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
22002
지시자 변수가 요구되♘으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY106
영역 밖의 페치 타입인 경우
HY107
결과 집합 영역 내에서 존재하지 않는 로우 번호를 참조하려는 경우
HY111
잘못된 북마크 값인 경우
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLFetchScroll 함수를 지원하지 않는 경우
SQLForeignKeys
ISO 92 CLI/ODBC 1.0에서 지원하며, 테이블의 외래 키에 대한 정보를 검색하는 함수입니다. 즉, 다른 테이 블 내의 기본 키를 참조하는 해당 테이블의 컬럼과 해당 테이블의 기본 키를 참조하는 다른 테이블의 외래 키의 목록을 검색합니다.
문법
SQLRETURN SQLForeignKeys (SQLHSTMT StatementHandle,
SQLCHAR *PKCatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *PKSchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *PKTableName,
SQLSMALLINT NameLength3,
SQLCHAR *FKCatalogName,
SQLSMALLINT NameLength4,
SQLCHAR *FKSchemaName,
SQLSMALLINT NameLength5,
SQLCHAR *FKTableName,
SQLSMALLINT NameLength6);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
PKCatalogName
입력
기본 키의 카탈로그 이름
NameLength1
입력
기본 키의 카탈로그 이름의 길이
PKSchemaName
입력
기본 키의 스키마 이름
NameLength2
입력
기본 키의 스키마 이름의 길이
PKTableName
입력
기본 키의 테이블 이름
NameLength3
입력
기본 키의 테이블 이름의 길이
FKCatalogName
입력
외래 키의 카탈로그 이름
NameLength4
입력
외래 키의 카탈로그 이름의 길이
FKSchemaName
입력
외래 키의 스키마 이름
NameLength5
입력
외래 키의 스키마 이름의 길이
FKTableName
입력
외래 키의 테이블 이름
NameLength6
입력
외래 키의 테이블 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLForeignKeys 함수를 지원하지 않는 경우
SQLFreeConnect(Deprecated)
연결 핸들을 무효화하고 이와 관련된 모든 자원을 해제하는 함수입니다. 만약 데이터베이스 연결이 유지된 상태에서 SQLFreeConnect 함수를 호출하면, SQL_ERROR가 반환되고 연결 핸들은 유효해집니다.
관련 함수 SQLFreeConnect 함수는 ODBC 3.x에서 SQLDisconnect 함수로 대체됩니다.
SQLFreeEnv(Deprecated)
환경 핸들을 무효화하고 이와 관련된 모든 자원을 해제하는 함수입니다. 만약 연결 핸들이 유효한 상태에서SQLFreeEnv 함수를 호출하면, SQL_ERROR가 반환되고 환경 핸들은 유효해집니다. 이 함수를 호출하기 전에 SQLFreeConnect 함수를 호출해야 합니다.
관련 함수
SQLFreeEnv 함수는 ODBC 3.x에서 SQLFreeHandle 함수로 대체됩니다.
SQLFreeHandle
ISO 92 CLI/ODBC 3.0에서 지원하며, 연결, 핸들, 명령문에 할당된 메모리를 해제하는 함수입니다.
문법
SQLRETURN SQLFreeHandle (SQLSMALLINT HandleType,
SQLHANDLE Handle);
파라미터
파라미터
용도
설명
HandleType
입력
해제될 핸들의 타입
SQL_HANDLE_ENV
SQL_HANDLE_DBC
SQL_HANDLE_STMT
Handle
입력
해제될 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY017
자동으로 할당된 서술자 핸들을 잘못 사용한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가SQLFreeHandle 함수를 지원하지 않는 경우
SQLFreeStmt
ISO 92 CLI/ODBC 1.0에서 지원하며, 명령문에 할당된 메모리를 해제하는 함수입니다.
SQL 문장을 실행한 후 결과를 처리하고 나서 SQLFreeStmt 함수를 호출합니다. 이 함수는 열려있는 커서를 닫고, 파라미터를 재설정합니다. 또한 컬럼의 바인드를 해제하고 문장 핸들을 무효화하며 핸들과 관련된 자원을 해제합니다. 이때 Option 파라미터에 의해 핸들을 해제하는 방식을 설정할 수 있습니다.
문법
SQLRETURN SQLFreeStmt (SQLHSTMT StatementHandle,
SQLUSMALLINT Option);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Option
입력
핸들을 해제하는 방식
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY092
잘못된 속성 및 옵션 식별자
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLFreeStmt 함수를 지원하지 않는 경우
SQLGetConnectAttr
ISO 92 CLI/ODBC 3.0에서 지원하며, 현재 설정된 데이터베이스 연결의 속성을 반환하는 함수입니다.
문법
SQLRETURN SQLGetConnectAttr (SQLHDBC ConnectionHandle,
SQLINTEGER Attribute,
SQLPOINTER Value,
SQLINTEGER BufferLength,
SQLINTEGER *StringLength);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
Attribute
입력
검색할 컬럼
Value
출력
컬럼의 현재 값을 저장한 메모리의 포인터
BufferLength
입력
실행 결과를 저장할 버퍼의 크기
StringLength
출력
Value 파라미터의 길이(NULL 포인터인 경우 길이를 반환하지 않는다.)
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
08003
데이터베이스 연결이 존재하지 않는 경우
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetConnectAttr 함수를 지원하지 않는 경우
SQLGetConnectOption(Deprecated)
SQLGetConnectOption 함수는 ODBC 3.x에서 SQLGetConnectAttr 함수로 대체됩니다.
SQLGetCursorName
ISO 92 CLI/ODBC 1.0에서 지원하며, 명시된 문장과 관련된 커서의 이름을 반환하는 함수입니다.
문법
SQLRETURN SQLGetCursorName (SQLHSTMT StatementHandle,
SQLCHAR *CursorName,
SQLSMALLINT BufferLength,
SQLSMALLINT *NameLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CursorName
출력
커서 이름을 저장한 버퍼의 포인터
BufferLength
입력
실행 결과를 저장할 버퍼의 크기
NameLength
출력
커서 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY015
사용할 수 있는 커서의 이름이 없는 경우
HY090
잘못된 문자열 또는 버퍼 길이
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetCursorName 함수를 지원하지 않는 경우
SQLGetData
ISO 92 CLI/ODBC 1.0에서 지원하며, 결과 집합의 현재 로우에서 단일 컬럼에 대한 데이터를 검색하는 함수입니다. SQLFetch 함수를 호출하여 애플리케이션 프로그램의 변수로 직접 데이터를 전달하는 SQLBinCol 함수 대신 이 함수를 사용할 수 있습니다.
문법
SQLRETURN SQLGetData (SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber,
SQLSMALLINT TargetType,
SQLPOINTER TargetValue,
SQLINTEGER BufferLength,
SQLINTEGER *StrLen_or_Ind);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ColumnNumber
입력
검색할 컬럼의 위치
TargetType
입력
검색된 데이터가 삽입될 버퍼의 C의 타입
TargetValue
출력
검색된 데이터가 삽입될 버퍼의 포인터
BufferLength
입력
버퍼의 길이
StrLen_or_Ind
출력
검색된 데이터의 길이나 지시자
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
22002
지시자 변수가 요구되♘으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY003
잘못된 애플리케이션 버퍼의 타입
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetData 함수를 지원하지 않는 경우
SQLGetDescField
ISO 92 CLI/ODBC 3.0에서 지원하며, 서술자 레코드의 컬럼 값 또는 현재 설정된 내용을 반환하는 함수입니다.
문법
SQLRETURN SQLGetDescField (SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLSMALLINT FieldIdentifier,
SQLPOINTER Value,
SQLINTEGER BufferLength,
SQLINTEGER *StringLength);
파라미터
파라미터
용도
설명
DescriptorHandle
입력
서술자 핸들
RecNumber
입력
서술자 레코드
FieldIdentifier
입력
서술자 값의 컬럼
Value
출력
서술자 정보를 저장한 버퍼의 포인터
BufferLength
입력
서술자 정보를 저장할 버퍼의 크기
StringLength
출력
실행 결과 정보의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: RecNumber 파라미터가 서술자 레코드의 현재 숫자보다 큰 경우, 서술자 핸들이 IRD인데 해당 커서가 열리지 않은 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY007
SQL 문장이 준비되지 않은 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY021
모순이 있는 서술자 정보
HY090
잘못된 문자열 또는 버퍼 길이
HY091
잘못된 서술자의 필드 식별자
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetDescField 함수를 지원하지 않는 경우
SQLGetDescRec
ISO 92 CLI/ODBC 3.0에서 지원하며, 서술자 레코드의 여러개의 컬럼 값 또는 현재 설정된 내용을 반환하는 함수입니다. 이때 컬럼은 명시된 이름, 데이터 타입 그리고 컬럼 및 파라미터의 데이터를 저장하는 공간을 반환합니다.
문법
SQLRETURN SQLGetDescRec (SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLCHAR *Name,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength,
SQLSMALLINT *Type,
SQLSMALLINT *SubType,
SQLINTEGER *Length,
SQLSMALLINT *Precision,
SQLSMALLINT *Scale,
SQLSMALLINT *Nullable);
파라미터
파라미터
용도
설명
DescriptorHandle
입력
서술자 핸들
RecNumber
입력
서술자 레코드
Name
출력
SQL_DESC_NAME 컬럼을 저장한 버퍼의 포인터
BufferLength
입력
Name 파라미터의 버퍼 길이
StringLength
출력
반환된 SQL_DESC_NAME 컬럼의 길이
Type
출력
SQL_DESC_TYPE 컬럼을 저장한 버퍼의 포인터
SubType
출력
SQL_DATETIME 타입인 레코드에 대해SQL_DESC_DATETIME_INTERVAL_CODE 필드의 값이 반환될 버퍼의 포인터
Length
출력
서술자 레코드의 길이 정보
Precision
출력
서술자 레코드의 정밀도 정보
Scale
출력
서술자 레코드의 스케일 정보
Nullable
출력
서술자 레코드의 NULL 허용 여부 정보
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: RecNumber 파라미터가 서술자 레코드의 현재 숫자보다 큰 경우, 서술자 핸들이 IRD인데 해당 커서가 열리지 않은 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY007
SQL 문장이 준비되지 않은 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetDescRec 함수를 지원하지 않는 경우
SQLGetDiagField
ISO 92 CLI/ODBC 3.0에서 지원하며, 특정 핸들과 관련된 에러, 경고, 상태 정보를 포함하는 진단의 데이터 구조 내 임의의 필드의 현재 값을 반환하는 함수입니다.
문법
SQLRETURN SQLGetDiagField (SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT RecNumber,
SQLSMALLINT DiagIdentifier,
SQLPOINTER DiagInfo,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength);
파라미터
파라미터
용도
설명
HandleType
입력
핸들의 타입
Handle
입력
핸들
RecNumber
입력
상태 레코드
DiagIdentifier
입력
반환될 값의 진단 컬럼
DiagInfo
출력
진단 정보를 저장한 버퍼의 포인터
BufferLength
입력
버퍼의 길이
StringLength
출력
실행 결과 정보의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
HY009
NULL 포인터를 잘못 사용한 경우
HY001
메모리 할당 에러
SQLGetDiagRec
ISO 92 CLI/ODBC 3.0에서 지원하며, 특정 핸들과 관련된 에러, 경고, 상태 정보를 포함하는 진단 레코드 내의 여러 필드의 현재 값을 반환하는 함수입니다. 이 함수는 하나의 열을 반환하는 SQLGetDiagField 함수와는 다르게 SQLSTATE, 에러 코드, 진단 메시지의 텍스트 등을 반환합니다.
문법
SQLRETURN SQLGetDiagRec (SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT RecNumber,
SQLCHAR *Sqlstate,
SQLINTEGER *NativeError,
SQLCHAR *MessageText,
SQLSMALLINT BufferLength,
SQLSMALLINT *TextLength);
파라미터
파라미터
용도
설명
HandleType
입력
핸들의 타입
Handle
입력
핸들
RecNumber
입력
상태 레코드
Sqlstate
출력
SQLSTATE 코드
NativeError
출력
디폴트 에러 코드
MessageText
출력
진단 메시지의 텍스트 문자열
BufferLength
입력
진단 메시지의 텍스트 문자열을 저장할 버퍼 길이
TextLength
출력
진단 메시지의 텍스트 문자열의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: RecNumber 파라미터가 0이거나 음수인 경우, 버퍼의 길이가 0보 다 작은 경우)
SQLSTATE
SQLSTATE
설명
HY009
NULL 포인터를 잘못 사용한 경우
HY001
메모리 할당 에러
SQLGetEnvAttr
ISO 92 CLI/ODBC 3.0에서 지원하며, 환경 핸들과 관련된 컬럼의 현재 값을 반환하는 함수입니다.
문법
SQLRETURN SQLGetEnvAttr (SQLHENV EnvironmentHandle,
SQLINTEGER Attribute,
SQLPOINTER Value,
SQLINTEGER BufferLength,
SQLINTEGER *StringLength);
파라미터
파라미터
용도
설명
Environmen
tHandle
입력
환경 핸들
Attribute
입력
검색할 컬럼
Value
출력
컬럼의 현재 값
BufferLength
입력
Value 파라미터가 문자열인 경우 최대 길이
StringLength
출력
실행 결과 정보의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY013
메모리 관리 에러
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
IM001
드라이버가 SQLGetEnvAttr 함수를 지원하지 않은 경우
SQLGetExtProcAllocMemory
External procedure 모듈을 위해서 지원하며, statement의 handle을 extproc의 context로부터 할당하는 함수입니다.
문법
SQLPOINTER SQL_API SQLExtProcAllocMemory(ExtProcContext *Context,
SQLUINTEGER AllocSize);
파라미터
파라미터
용도
설명
Context
입력
콘텍스트
AllocSize
입력
할당 크기
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
SQLGetExtProcConnect
External procedure 모듈을 위해서 지원하며, env, connection을 extproc의 context와 connect로부터 할당 하는 함수입니다.
문법
SQLRETURN SQL_API SQLGetExtProcConnect(ExtProcContext *Context,
SQLHENV *EnvironmentHandle,
SQLHDBC *ConnectionHandle,
SQLSMALLINT *ErrorHandleType,
SQLHANDLE *ErrorHandle);
파라미터
파라미터
용도
설명
Context
입력
콘텍스트
Environmen
tHandle
출력
환경 핸들
ConnectionHandle
출력
연결 핸들
ErrorHandleType
출력
에러 핸들 타입
ErrorHandle
출력
에러 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
SQLGetFunctions
ISO 92 CLI/ODBC 1.0에서 지원하며, 드라이버가 특정 함수를 지원하는지의 여부를 알기 위해 사용하는 함수입니다. 이 함수는 드라이버 관리자 내에서 사용할 수 있으며, 드라이버 내에도 사용할 수 있습니다. 만약 드라이버 내에서 이 함수를 사용하는 경우 드라이버 관리자는 드라이버 내의 함수를 호출하게 됩니다.
문법
SQLRETURN SQLGetFunctions (SQLHDBC ConnectionHandle,
SQLUSMALLINT FunctionId,
SQLUSMALLINT *Supported);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
FunctionId
입력
ODBC 함수를 호출할 미리 정의된 값
Supported
출력
질의한 함수가 지원되는 지의 여부가 저장될 버퍼의 포인터
SQL_TRUE
SQL_FALSE
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY095
영역 밖의 함수 타입인 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
SQLGetInfo
ISO 92 CLI/ODBC 1.0에서 지원하며, 드라이버의 연결과 관련된 데이터 소스의 일반적인 정보를 반환하는 함수입니다.
문법
SQLRETURN SQLGetInfo (SQLHDBC ConnectionHandle,
SQLUSMALLINT InfoType,
SQLPOINTER InfoValue,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLength);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
InfoType
입력
정보의 타입
InfoValue
출력
정보를 저장할 버퍼의 포인터
BufferLength
입력
버퍼의 길이
StringLength
출력
반환된 정보의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
08003
데이터베이스 연결이 존재하지 않는 경우
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY013
메모리 관리 에러
HY024
잘못된 속성 값
HY090
잘못된 문자열 또는 버퍼 길이
HY096
영역 밖의 정보 타입
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetInfo 함수를 지원하지 않는 경우
SQLGetStmtAttr
ISO 92 CLI/ODBC 3.0에서 지원하며, SQL 문장의 속성에 대한 현재 값을 반환하는 함수입니다.
문법
SQLRETURN SQLGetStmtAttr (SQLHSTMT StatementHandle,
SQLINTEGER Attribute,
SQLPOINTER Value,
SQLINTEGER BufferLength,
SQLINTEGER *StringLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Attribute
입력
검색할 속성
Value
출력
명시된 속성의 현재 값이 반환될 버퍼의 포인터
BufferLength
입력
버퍼의 길이
StringLength
출력
반환된 결과의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY092
잘못된 속성 및 옵션 식별자
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetStmtAttr 함수를 지원하지 않는 경우
SQLGetStmtOption(Deprecated)
SQLGetStmtOption 함수는 ODBC 3.x에서 SQLGetStmtAttr 함수로 대체됩니다.
SQLGetTypeInfo
ISO 92 CLI/ODBC 1.0에서 지원하며, 데이터소스가 지원하는 데이터 타입의 정보를 반환하는 함수입니다. 이때 정보는 SQL 문장을 실행한 결과 집합의 형식으로 반환됩니다.
애플리케이션 프로그램은 ALTER TABLE과 CREATE TABLE 문장에 이 함수를 호출하는 경우 결과 집합의 TYPE_NAME 컬럼으로 반환될 타입의 이름을 사용합니다.
문법
SQLRETURN SQLGetTypeInfo (SQLHSTM StatementHandle,
SQLSMALLINT DataType);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
DataType
입력
SQL의 데이터 타입
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY004
잘못된 SQL의 데이터 타입
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLGetTypeInfo 함수를 지원하지 않는 경우
SQLMoreResults
ISO 92 CLI/ODBC 1.0에서 지원하며, SETECT, UPDATE, INSERT, DELETE 문을 포함하는 SQL 문장이 추가적으로 실행 결과를 사용할 것인지의 여부를 결정하는 함수입니다. 만약 추가적으로 실행 결과를 사용 하는 경우에는 해당 결과를 초기화합니다.
문법
SQLRETURN SQLMoreResults(SQLHSTMT StatementHandle);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08S01
서버와의 통신 연결에 실패한 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLMoreResults 함수를 지원하지 않는 경우
SQLNativeSql
ODBC 1.0에서 지원하며, 드라이버에 의해 변경되는 SQL 문자열을 반환하는 함수입니다. 이때 SQL 문장은 실행하지 않습니다.
문법
SQLRETURN SQLNativeSql (SQLHDBC ConnectionHandle,
SQLCHAR *InStatementText,
SQLINTEGER TextLength1,
SQLCHAR *OutStatementText,
SQLINTEGER BufferLength,
SQLINTEGER *TextLength2Ptr);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
InStatementText
입력
변경될 SQL 문자열
TextLength1
입력
변경될 SQL 문자열의 길이
OutStatementText
출력
반환된 SQL 문자열
BufferLength
입력
반환된 SQL 문자열을 저장할 버퍼의 길이
TextLength2Ptr
출력
반환 결과의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
08003
데이터베이스 연결이 존재하지 않는 경우
08S01
서버와의 통신 연결에 실패한 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY109
잘못된 커서 위치
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLNativeSql 함수를 지원하지 않는 경우
SQLNumParams
ODBC 1.0에서 지원하며, SQL 문장 내의 파라미터의 개수를 반환하는 함수입니다.
문법
SQLRETURN SQLNumParams (SQLHSTMT StatementHandle,
SQLSMALLINT *ParameterCountPtr);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ParameterCountPtr
출력
반환 정보를 저장한 버퍼의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되♘으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLNumParams 함수를 지원하지 않는 경우
SQLNumResultCols
ISO 92 CLI/ODBC 1.0에서 지원하며, 입력 문장 핸들과 관련된 결과 집합의 컬럼 수를 반환하는 함수입니다. 가장 최근에 실행된 SQL 문장이 SELECT 문이 아닌 경우 0을 반환합니다.
이 함수를 호출하기 전에 SQLPrepare 또는 SQLExecDirect 함수를 호출해야 합니다.
문법
SQLRETURN SQLNumResultCols (SQLHSTMT StatementHandle,
SQLSMALLINT *ColumnCount);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
ColumnCount
출력
결과를 저장할 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLNumResultCols 함수를 지원하지 않는 경우
SQLParamData
ISO 92 CLI/ODBC 1.0에서 지원하며, SQL 문장을 실행하는 시간에 파라미터 데이터를 지원하는 함수입니다. 이 함수는 SQLPutData 함수와 함께 사용합니다.
문법
SQLRETURN SQLParamData (SQLHSTMT StatementHandle,
SQLPOINTER *Value);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Value
출력
SQLBindParameter 함수의 ParameterValue 파라미터나SQLBindCol함수의 TargetValue 파라미터를 저장하기 위한 버퍼의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_NEED_DATA
SQL 문장을 실행하기 위해 데이터가 더 필요한 상태
(예: 파라미터)
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
07006
제한된 데이터 타입의 속성에 위배되는 경우
08S01
서버와의 통신 연결에 실패한 경우
22026
잘못된 길이를 가진 문자열 데이터
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLParamData 함수를 지원하지 않는 경우
SQLParamOptions(Deprecated)
SQLParamOptions 함수는 ODBC 3.x에서 SQLSetStmtAttr 함수로 대체됩니다.
SQLPrepare
ISO 92 CLI/ODBC 1.0에서 지원하며, 실행할 SQL 문장을 준비하는 함수입니다. 즉, SQL 문장을 입력 명령 핸들과 연관시키고 명령문을 준비할 데이터베이스 서버로 전송합니다.
문법
SQLRETURN SQLPrepare (SQLHSTMT StatementHandle,
SQLCHAR *StatementText,
SQLINTEGER TextLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
StatementText
입력
SQL 문장
TextLength
입력
SQL 문장의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08S01
서버와의 통신 연결에 실패한 경우
21S01
삽입될 값의 리스트가 컬럼과 일치하지 않은 경우
21S02
테이블의 degree가 컬럼과 일치하지 않은 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
22019
잘못된 이스케이프 문자
22025
잘못된 이스케이프 시퀀스
24000
잘못된 커서 상태인 경우
34000
잘못된 커서 이름
3D000
잘못된 카탈로그 이름
3F000
잘못된 스키마 이름
42000
문법 에러 또는 접근 위배가 발생한 경우
42S01
기반 테이블 또는 뷰가 이미 존재하는 경우
42S02
기반 테이블 또는 뷰를 찾을 수 없는 경우
42S11
인덱스가 이미 존재하는 경우
42S12
인덱스를 찾을 수 없는 경우
42S21
컬럼이 이미 존재하는 경우
42S22
컬럼을 찾을 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLPrepare 함수를 지원하지 않는 경우
SQLPrimaryKeys
ISO 92 CLI/ODBC 1.0에서 지원하며, 특정 테이블에 대한 기본 키의 정보를 리스트 형태로 반환하는 함수입니다.
문법
SQLRETURN SQLPrimaryKeys (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
테이블 이름
NameLength3
입력
테이블 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLPrimaryKeys 함수를 지원하지 않는 경우
SQLProcedureColumns
ODBC 1.0에서 지원하며, 명시된 프러시저의 결과 집합을 구성하는 컬럼뿐만 아니라, 입출력 파라미터의 목록을 반환하는 함수입니다. 이때 정보는 명시된 문장에 대한 결과 집합의 형태로 반환합니다.
문법
SQLRETURN SQLProcedureColumns (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *ProcName,
SQLSMALLINT NameLength3,
SQLCHAR *ColumnName,
SQLSMALLINT NameLength4);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
ProcName
입력
프러시저 이름
NameLength3
입력
프러시저 이름의 길이
ColumnName
입력
컬럼 이름
NameLength4
입력
컬럼 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLProcedureColumns 함수를 지원하지 않는 경우
SQLProcedures
ODBC 1.0에서 지원하며, 명시된 데이터소스 내에 저장된 프러시저 이름의 목록을 반환하는 함수입니다.
문법
SQLRETURN SQLProcedures (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *ProcName,
SQLSMALLINT NameLength3);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
ProcName
입력
프러시저 이름
NameLength3
입력
프러시저 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLProcedures 함수를 지원하지 않는 경우
SQLPutData
ISO 92 CLI/ODBC 1.0에서 지원하며, 애플리케이션 프로그램이 SQL 문장이 실행되는 시간에 파라미터 또는 컬럼의 데이터를 드라이버로 보내는 것을 허용하는 함수입니다. 이 함수는 문자, 바이너리 또는 특정 데이터소스에서 사용하는 데이터 타입 등을 갖는 컬럼 내의 문자 또는 바이너리 데이터의 값을 보내는데 사용합니다.
현재 드라이버가 유니코드 데이터를 지원하지 않아도, 유니코드 C의 데이터 타입을 바인드할 수 있도록 지원합니다.
문법
SQLRETURN SQLPutData (SQLHSTMT StatementHandle,
SQLPOINTER Data,
SQLINTEGER StrLen_or_Ind);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Data
입력
파라미터나 컬럼의 실제 데이터를 저장하는 버퍼의 포인터
StrLen_or_Ind
입력
데이터의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07S01
디폴트 파라미터가 잘못 사용된 경우
08S01
서버와의 통신 연결에 실패한 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22008
DATETIME 필드에 오버플로우가 발생한 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY019
문자 및 바이너리가 아닌 데이터를 나누어 보낸 경우
HY020
NULL 값을 접합(union)하려고 시도하는 경우
HY090
잘못된 문자열 또는 버퍼 길이
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLPutData 함수를 지원하지 않는 경우
SQLRowCount
ISO 92 CLI/ODBC 1.0에서 지원하며, UPDATE, INSERT, DELETE 문에 의해 영향을 받는 테이블 또는 테이블과 관련된 뷰의 로우수를 반환하는 함수입니다. 이 함수는 가장 최근에 실행된 SQL 문장이 UPDATE, INSERT, DELETE 문이 아니거나 실행에 실패한 경우 0을 반환합니다.
이 함수를 호출하기 전에 SQLExecute 함수 또는 SQLExecDirect 함수를 호출해야 합니다.
문법
SQLRETURN SQLRowCount (SQLHSTMT StatementHandle,
SQINTEGER *RowCount);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
RowCount
출력
실행 결과의 로우를 저장할 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLRowCount 함수를 지원하지 않는 경우
SQLSetConnectAttr
ISO 92 CLI/ODBC 3.0에서 지원하며, 특정 데이터베이스 연결에 대한 연결 속성의 값을 설정하는 함수입니다. 설정된 모든 데이터베이스 연결과 명령문의 옵션은 SQLFreeConnect 함수가 호출되거나 SQLSet ConnectAttr 함수에 의해 재설정이 될 때까지 유지됩니다.
문법
SQLRETURN SQLSetConnectAttr (SQLHDBC ConnectionHandle,
SQLINTEGER Attribute,
SQLPOINTER Value,
SQLINTEGER StringLength);
파라미터
파라미터
용도
설명
ConnectionHandle
입력
연결 핸들
Attribute
입력
설정할 속성
Value
입력
설정할 속성의 값이 들어 있는 버퍼의 포인터
StringLength
입력
버퍼의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08002
이미 사용 중인 데이터베이스 연결의 이름인 경우
08003
데이터베이스 연결이 존재하지 않는 경우
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
3D000
잘못된 카탈로그 이름
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY011
현재 설정될 수 없는 속성인 경우
HY013
메모리 관리 에러
HY024
잘못된 속성 값
HY090
잘못된 문자열 또는 버퍼 길이
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSetConnectAttr 함수를 지원하지 않는 경우
IM009
Translation DLL을 로드하는 것이 불가능한 경우
SQLSetConnectOption(Deprecated)
SQLSetConnectOption 함수는 ODBC 3.x에서 SQLSetConnectAttr 함수로 대체됩니다.
SQLSetCursorName
ISO 92 CLI/ODBC 1.0에서 지원하며, 현재 실행 중인 SQL 문장을 커서 이름으로 연관시키는 함수입니다. 만약 애플리케이션 프로그램이 이 함수를 호출하지 않으면 드라이버가 SQL 문장을 실행하는 데 필요한 커서 이름을 생성합니다.
문법
SQLRETURN SQLSetCursorName (SQLHSTMT StatementHandle,
SQLCHAR *CursorName,
SQLSMALLINT NameLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CursorName
입력
커서 이름
NameLength
입력
커서 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
24000
잘못된 커서 상태인 경우
34000
잘못된 커서 이름
3C000
중복된 커서 이름
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSetCursorName 함수를 지원하지 않는 경우
SQLSetDescField
ISO 92 CLI/ODBC 3.0에서 지원하며, 서술자 레코드의 한 필드의 값을 설정하는 함수입니다.
문법
SQLRETURN SQLSetDescField (SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLSMALLINT FieldIdentifier,
SQLPOINTER Value,
SQLINTEGER BufferLength);
파라미터
파라미터
용도
설명
DescriptorHandle
입력
서술자 핸들
RecNumber
입력
서술자 내에서 해당 필드의 레코드 번호
(레코드 번호는 1부터 시작한다.)
FieldIdentifier
입력
설정될 필드의 식별자
Value
입력
설정할 값이 들어 있는 버퍼의 포인터
BufferLength
입력
버퍼의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY016
구현 로우 서술자(implementation row descriptor)를 수정할 수 없는 경우
HY021
모순이 있는 서술자 정보
HY090
잘못된 문자열 또는 버퍼 길이
HY091
잘못된 서술자의 필드 식별자
HY092
잘못된 속성 및 옵션 식별자
HY105
잘못된 파라미터 타입
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSetDescField 함수를 지원하지 않는 경우
SQLSetDescRec
ISO 92 CLI/ODBC 3.0에서 지원하며, 컬럼 또는 파라미터 데이터에 사용되는 버퍼와 데이터 타입에 대해 여러개의 서술자 컬럼을 설정하는 함수입니다.
문법
SQLRETURN SQLSetDescRec (SQLHDESC DescriptorHandle,
SQLSMALLINT RecNumber,
SQLSMALLINT Type,
SQLSMALLINT SubType,
SQLINTEGER Length,
SQLSMALLINT Precision,
SQLSMALLINT Scale,
SQLPOINTER Data,
SQLINTEGER *StringLength,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
DescriptorHandle
입력
서술자 핸들
RecNumber
입력
설정할 컬럼을 포함하는 서술자 레코드
Type
입력
서술자 레코드의 종류
SubType
입력
서술자 레코드의 세부 종류
Length
입력
서술자 레코드의 길이 컬럼
Precision
입력
서술자 레코드의 정밀도 컬럼
Scale
입력
서술자 레코드의 스케일 컬럼
Data
입/출력
서술자 레코드의 데이터 포인터 컬럼
StringLength
입/출력
서술자 레코드의 문자열 길이 컬럼
Indicator
입/출력
서술자 레코드의 지시자 포인터 컬럼
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY016
구현 로우 서술자를 수정할 수 없는 경우
HY021
모순이 있는 서술자 정보
HY090
잘못된 문자열 또는 버퍼 길이
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSetDescRec 함수를 지원하지 않는 경우
SQLSetEnvAttr
ISO 92 CLI/ODBC 3.0에서 지원하며, 현재 환경 핸들의 속성 값을 설정하는 함수입니다.
문법
SQLRETURN SQLSetEnvAttr (SQLHENV EnvironmentHandle,
SQLINTEGER Attribute,
SQLPOINTER Value,
SQLINTEGER StringLength);
파라미터
파라미터
용도
설명
EnvironmentHandle
입력
환경 핸들
Attribute
입력
설정할 환경 핸들의 속성
Value
입력
설정할 환경 핸들의 속성 값
StringLength
입력
설정할 환경 핸들의 속성 값이 문자형일 때 해당 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY024
잘못된 속성 값
HY090
잘못된 문자열 또는 버퍼 길이
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
SQLSetParam(Deprecated)
SQLSetParam 함수는 ODBC 3.x에서 SQLBindParameter 함수로 대체됩니다.
SQLSetPos
ODBC 1.0에서 지원하며, 로우 집합 내에서 커서의 위치를 설정하거나 애플리케이션 프로그램이 로우 집합 내의 데이터를 리프레시(Refresh)하도록 허용하는 함수입니다. 또한 이 함수는 결과 집합 내의 데이터를 갱신 또는 제거할 수 있습니다.
문법
SQLRETURN SQLSetPos (SQLHSTMT StatementHandle,
SQLUSMALLINT RowNumber,
SQLUSMALLINT Operation,
SQLUSMALLINT LockType);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
RowNumber
입력
로우 집합 내의 로우의 위치
Operation
입력
수행할 연산
LockType
입력
연산이 수행된 후 로우에 대한 잠금의 종류
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_NEED_DATA
SQL 문장을 실행하기 위해 데이터가 더 필요한 상태
(예: 파라미터)
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01001
커서 연산이 충돌한 경우
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S01
로우에 에러가 있는 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
21S02
테이블의 degree가 컬럼과 일치하지 않은 경우
22001
문자열 데이터가 오른쪽에서 잘린 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22008
DATETIME 필드에 오버플로우가 발생한 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
23000
무결성 제약조건에 위배되는 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
42000
문법 에러 또는 접근 위배가 발생한 경우
44000
WITH CHECK OPTION에 위배되는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY010
함수 시퀀스 에러
HY011
현재 설정될 수 없는 속성인 경우
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY092
잘못된 속성 식별자
HY107
결과 집합 영역 내에서 존재하지 않는 로우 번호를 참조하려는 경우
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSetPos 함수를 지원하지 않는 경우
SQLSetScrollOptions(Deprecated)
SQLSetScrollOptions 함수는 ODBC 3.x에서 SQLGetInfo 함수와 SQLSetStmtAttr 함수로 대체됩니다.
SQLSetStmtAttr
ISO 92 CLI/ODBC 3.0에서 지원하며, 특정 문장 핸들의 속성을 설정하는 함수입니다. 새로운 SQLSetStm tAttr 함수에 의해 속성이 재설정되거나 문장 핸들이 삭제되기 전에는 기존에 설정된 속성이 유지됩니다.
문법
SQLRETURN SQLSetStmtAttr (SQLHSTMT StatementHandle,
SQLINTEGER Attribute,
SQLPOINTER Value,
SQLINTEGER StringLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Attribute
입력
설정할 문장 핸들의 속성
Value
입력
설정할 문장 핸들의 속성 값
StringLength
입력
설정할 문장 핸들의 속성 값이 문자형일 때 해당 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01S02
옵션의 값이 바뀐 경우
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY011
현재 설정될 수 없는 속성인 경우
HY013
메모리 관리 에러
HY017
자동으로 할당된 서술자 핸들을 잘못 사용한 경우
HY024
잘못된 속성 값
HY090
잘못된 문자열 또는 버퍼 길이
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSetStmtAttr 함수를 지원하지 않는 경우
SQLSetStmtOption(Deprecated)
SQLSetStmtOption 함수는 ODBC 3.x에서 SQLSetStmtAttr 함수로 대체됩니다.
SQLSpecialColumns
Xopen CLI/ISO 92 CLI/ODBC 1.0에서 지원하며, 테이블의 특정 컬럼의 정보를 검색하는 함수입니다.
검색되는 컬럼의 정보로는 해당 테이블 내의 하나의 로우를 유일하게 설정하는 컬럼의 최적 집합(optimal set) 그리고 트랜잭션이 로우의 임의의 값을 변경할 때 자동으로 변경되는 컬럼이 있습니다.
문법
SQLRETURN SQLSpecialColumns (SQLHSTMT StatementHandle,
SQLUSMALLINT IdentifierType,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3,
SQLUSMALLINT Scope,
SQLUSMALLINT Nullable);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
IdentifierType
입력
반환되는 컬럼의 타입
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
테이블 이름
NameLength3
입력
테이블 이름의 길이
Scope
입력
ROWID의 최소 범위
Nullable
입력
NULL 값의 허용 여부
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY097
영역 밖의 컬럼인 경우
HY098
영역 밖의 범위(scope) 타입인 경우
HY099
영역 밖의 Nullable 타입인 경우
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLSpecialColumns 함수를 지원하지 않는 경우
SQLStatistics
Xopen CLI/ODBC 1.0에서 지원하며, 특정 테이블의 인덱스 통계 정보를 검색하는 함수입니다. 이때 정보는 결과 집합의 형태로 반환됩니다.
문법
SQLRETURN SQLStatistics (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3,
SQLUSMALLINT Unique,
SQLUSMALLINT Reserved);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
테이블 이름
NameLength3
입력
테이블 이름의 길이
Unique
입력
인덱스의 종류
Reserved
입력
SQL_ENSURE로 설정된 경우 데이터베이스에서 무조건 통계정보를 가져온다. 이 외에는 사용할 수 없다.
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
1000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY100
영역 밖의 고유 옵션 타입(uniqueness option type)
HY101
영역 밖의 정확도 옵션 타입(accuracy option type)
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLStatistics 함수를 지원하지 않는 경우
SQLTablePrivileges
ISO 92 CLI/ODBC 1.0에서 지원하며, 각 테이블과 관련된 테이블이나 권한 목록의 정보를 반환하는 함수입니다. 이때 정보는 결과 집합의 형태로 반환합니다.
문법
SQLRETURN SQLTablePrivileges (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
테이블 이름
NameLength3
입력
테이블 이름의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLTablePrivileges 함수를 지원하지 않는 경우
SQLTables
Xopen CLI/ISO 92 CLI/ODBC 1.0에서 지원하며, 연결된 특정 데이터소스의 데이터 사전에 저장된 테이블 이름의 리스트의 정보를 반환하는 함수입니다. 이때 정보는 결과 집합의 형태로 반환되므로 SELECT 문에 의해 생성된 결과 집합과 같이 사용됩니다.
문법
SQLRETURN SQLTables (SQLHSTMT StatementHandle,
SQLCHAR *CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR *SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR *TableName,
SQLSMALLINT NameLength3,
SQLCHAR *TableType,
SQLSMALLINT NameLength4);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
CatalogName
입력
카탈로그 이름
NameLength1
입력
카탈로그 이름의 길이
SchemaName
입력
스키마 이름
NameLength2
입력
스키마 이름의 길이
TableName
입력
테이블 이름
NameLength3
입력
테이블 이름의 길이
TableType
입력
테이블의 데이터 타입
NameLength4
입력
테이블의 데이터 타입의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08S01
서버와의 통신 연결에 실패한 경우
24000
잘못된 커서 상태인 경우
40001
직렬화에 실패한 경우
40003
실행이 완료되지 않았고 트랜잭션의 상태를 알 수 없는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
HYT00
제한 시간을 초과한 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLTables 함수를 지원하지 않는 경우
SQLTransact(Deprecated)
수행된 데이터베이스의 모든 변경에 대해 커밋을 하거나 롤백을 하는 함수입니다. 만약 트랜잭션이 사용 중이면 애플리케이션 프로그램은 데이터베이스의 연결이 끊기기 전에 이 함수를 호출해야 합니다. 이 함수가 호출되면 열린 상태인 커서가 닫히고 처리되지 않은 결과 집합은 삭제됩니다.
관련 함수 SQLTransact 함수는 ODBC 3.x에서 SQLEndTran 함수로 대체됩니다.
Tibero API
SQLAllocEnv2(Deprecated)
SQLAllocEnv 함수와 같이 환경 핸들과 연관된 메모리를 할당하고 초기화하는 함수입니다. 또한 tbCLI를 사용하는 애플리케이션 프로그램이 멀티 스레드를 사용하지는지의 여부를 설정할 수 있습니다.
멀티 스레드는 운영체제별로 설정하는 방법이 아래와같이 다릅니다.
운영체제
설명
UNIX 계열
UNIX 계열은 디폴트로 멀티 스레드를 사용하지 않는 것으로 설정되어 있다.
멀티 스레드를 사용하려면 반드시 마지막 파라미터인 UseMultiThread의 값에 'TRUE'를 설정해줘야 한다.
Windows 계열
UseMultiThread의 값에 상관없이 멀티 스레드를 사용할 수 있으므로 SQLAllocEnv2 또는 SQLAllocHandle2 함수를 사용하지 않기를 권장한다.
이 함수는 환경 핸들을 처음 할당할 때 사용해야만 멀티스레드의 사용 여부를 적용할 수 있습니다.
관련 함수 SQLAllocEnv2 함수는 SQLAllocHandle2 함수로 대체됩니다.
SQLAllocHandle2
환경, 연결, 문장 핸들을 할당하고, tbCLI를 사용하는 프로그램이 멀티 스레드를 사용하는지의 여부를 설정할 수 있는 함수입니다. 멀티 스레드를 운영체제 별로 설정하는 방법은 SQLAllocHandle 함수와 같습니다.
문법
SQLRETURN SQLAllocHandle (SQLSMALLINT HandleType,
SQLHANDLE InputHandle,
SQLHANDLE *OutputHandle,
SQLSMALLINT UseMultiThread);
파라미터
파라미터
용도
설명
HandleType
입력
할당 받을 핸들의 타입
SQL_HANDLE_ENV
SQL_HANDLE_DBC
SQL_HANDLE_STMT
InputHandle
입력
입력 핸들(핸들의 타입에 따라 다른 값을 갖는다.)
SQL_HANDLE_ENV : SQL_NULL_HANDLE
SQL_HANDLE_DBC : 환경 핸들
SQL_HANDLE_STMT : 연결 핸들
OutputHandle
출력
할당 받을 핸들의 포인터
(환경 핸들이 아닌 다른 핸들을 할당할 때 SQL_ERROR를 반환하는 경 우 OutputHandle 파라미터를 SQL_NULL_HDBC, SQL_NULL_HSTMT 로 할당한다.)
UseMultiThread
입력
멀티 스레드의 사용 여부
(멀티 스레드 환경에서 tbCLI를 사용하는 경우 이 값을 SQL_TRUE로 설 정한다.)
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
08003
데이터베이스 연결이 존재하지 않는 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY014
한정된 범위의 핸들 개수를 초과한 경우
HY092
잘못된 속성 및 옵션 식별자
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLAllocHandle2 함수를 지원하지 않는 경우
관련 함수 이 함수는 SQLAllocConnect, SQLAllocEnv2, SQLAllocstmt를 대체하는 함수입니다.
SQLGetWarningMsg
특정 수행문에 대해 경고 메시지가 발생할 경우, 해당 경고 메시지를 검색하는 함수입니다.
문법
SQLRETURN SQLGetWarningMsg (SQLHSTMT StatementHandle,
SQLCHAR *OutputString,
SQLINTEGER *BufLength);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
OutputString
출력
반환될 경고 메시지를 담을 버퍼
BufLength
입력
반환될 경고 메시지를 담을 버퍼의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLGetWarningMsgLength
특정 수행문에 대해 경고 메시지가 발생할 경우, 해당 경고 메시지의 길이를 검색하는 함수입니다.
문법
SQLRETURN SQLGetWarningMsgLength (SQLHSTMT StatementHandle,
SQLINTEGER *Length);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Length
출력
반환될 경고 메시지의 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLLobClose
연산의 대상이 되는 LOB를 닫는 함수입니다. 트랜잭션이 완료되기 전에 대상이 되는 LOB가 반드시 닫혀야 에러가 발생하지 않습니다. 또한 열지 않은 LOB를 닫으려 할 때에도 에러가 발생합니다.
그리고 Open 및 Close를 호출하지 않고 각 LOB와 관련된 함수를 호출하면 함수마다 내부적으로 Open 및 Close를 수행합니다.
문법
SQLRETURN SQLLobClose (SQLHSTMT StatementHandle,
SQLINTEGER Locator,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Locator
입력
LOB locator
Indicator
입력
NULL 지시자(indicator)의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLLobClose 함수를 지원하지 않는 경우
SQLLobFreeLoc
연산의 대상이 되는 LOB Locator에 달려있는 자원을 해제합니다.
문법
SQLRETURN SQLLobFreeLoc (SQLHSTMT StatementHandle,
SQLINTEGER Locator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Locator
입력
LOB locator
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLLobFreeLoc 함수를 지원하지 않는 경우
SQLLobGetData(Deprecated)
원하는 위치의 대용량 객체형의 데이터를 가져오는 함수입니다. 단, BLOB와 CLOB에 따라 가져오는 데이터가 다릅니다.
문법
SQLRETURN SQLLobGetData (SQLHSTMT StatementHandle,
SQLINTEGER SourceLocator,
SQLBIGINT Offset,
SQLINTEGER *ByteLength,
SQLINTEGER *CharLength,
SQLSMALLINT TargetCType,
SQLPOINTER Data,
SQLINTEGER BufferLength,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
SourceLocator
입력
LOB locator
Offset
입력
가져오려는 LOB 데이터의 시작 오프셋(offset)
CLOB/NCLOB : 시작 character의 위치
BLOB : 시작 byte의 위치
ByteLength
입/출력
BLOB 타입의 요청 및 반환될 데이터의 길이 (bytes)
CharLength
입/출력
CLOB 타입의 요청 및 반환될 데이터의 길이 (characters)
TargetCType
입력
반환될 데이터의 C 타입
Data
입력
반환될 데이터 포인터
BufferLength
입력
반환될 데이터 버퍼의 길이
Indicator
출력
데이터에 쓰여진 byte 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태 (예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우)
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
22002
지시자 변수가 요구되♘으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY003
잘못된 애플리케이션의 버퍼 타입
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLLobGetData 함수를 지원하지 않는 경우
관련 함수 SQLLobGetData 함수는 SQLLobGetData2 함수로 대체됩니다.
SQLLobGetData2
원하는 위치의 대용량 객체형의 데이터를 가져오는 함수입니다. 단, BLOB와 CLOB에 따라 가져오는 데이터가 다릅니다.
문법
SQLRETURN SQLLobGetData2 (SQLHSTMT StatementHandle,
SQLINTEGER Locator,
SQLBIGINT Offset,
SQLINTEGER *ReadLength,
SQLSMALLINT TargetCType,
SQLPOINTER DataPtr,
SQLINTEGER BufferLength,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Locator
입력
LOB locator
Offset
입력
가져오려는 LOB 데이터의 시작 오프셋(offset)
CLOB/NCLOB : 시작 character의 위치
BLOB : 시작 byte의 위치
ReadLength
입/출력
입력
CLOB/NCLOB : 가져올 character 길이
BLOB : 가져올 byte 길이
출력
CLOB/NCLOB : 가져온 character 길이
BLOB : 가져온 byte 길이
0이면 데이터 버퍼 길이(BufferLength)만큼 다 채워서 반환
TargetCType
입력
반환될 데이터의 C 타입
DataPtr
입력
반환될 데이터 포인터
BufferLength
입력
반환될 데이터 버퍼의 길이
Indicator
입력
데이터에 쓰여진 byte 길이
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_NO_DATA
함수가 성공적으로 완료되었으나, 관련된 데이터를 찾을 수 없는 상태
(예: 주어진 SQL 문장에 의해 갱신된 로우가 없는 경우었
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
01S07
숫자 타입이나 날짜 타입의 일부 정보가 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07009
잘못된 서술자 인덱스
08S01
서버와의 통신 연결에 실패한 경우
22002
지시자 변수가 요구되었으나 제공되지 않은 경우
22003
한정된 범위를 초과한 숫자 값인 경우
22007
잘못된 DATETIME 타입의 포맷인 경우
22012
0으로 나눈 경우
22015
INTERVAL 필드에 오버플로우가 발생한 경우
22018
캐스트 설정을 위한 문자 값이 잘못된 경우
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY003
잘못된 애플리케이션의 버퍼 타입
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY090
잘못된 문자열 또는 버퍼 길이
HY109
잘못된 커서 위치
HYC00
선택적인 기능이 구현되지 않은 경우
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLLobGetData 함수를 지원하지 않는 경우
SQLLobGetLength
특정 LOB 데이터의 길이를 검색하는 함수입니다. BLOB와 CLOB 데이터 타입 모두에 사용할 수 있습니다.
문법
SQLRETURN SQLLobGetLength (SQLHSTMT StatementHandle,
SQLINTEGER Locator,
SQLBIGINT *StringLength,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Locator
입력
LOB locator
StringLength
출력
반환될 LOB 데이터의 길이
CLOB/NCLOB : character 길이
BLOB : byte 길이
Indicator
입력
NULL 지시자의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
07006
제한된 데이터 타입의 속성에 위배되는 경우
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY019
문자 및 바이너리가 아닌 데이터를 나누어 보낸 경우
HY020
NULL 값을 접합하려고 시도하는 경우
HY090
잘못된 문자열 또는 버퍼 길이
HYC00
선택적인 기능이 구현되지 않은 경우
0F001
LOB의 토큰에 아무런 값도 없는 경우
SQLLobOpen
연산의 대상이 될 LOB 데이터를 여는 함수입니다. 이 함수는 각종 LOB 연산을 할 때 항상 먼저 선언되어야 합니다. 그리고 Open 및 Close를 호출하지 않고 각 LOB와 관련된 함수를 호출하면 함수마다 내부적으로 Open 및 Close를 수행합니다. 한 트랜잭션에서 같은 LOB 인스턴스를 두 번 열면 에러가 발생합니다. 또한 다른 locator를 사용해 다시 열려고 해도 마찬가지로 오류가 발생합니다.
문법
SQLRETURN SQLLobOpen (SQLHSTMT StatementHandle,
SQLINTEGER Locator,
SQLSMALLINT Mode,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
SourceLocator
입력
LOB locator
Mode
입력
반환할 데이터의 위치 값
Indicator
입력
NULL 지시자의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
24000
잘못된 커서 상태인 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLLobOpen 함수를 지원하지 않는 경우
SQLLobPutData
LOB 내에서 원하는 위치에 데이터를 쓰는 함수입니다.
문법
SQLRETURN SQLLobPutData (SQLHSTMT StatementHandle,
SQLINTEGER *DestLocator,
SQLBIGINT DestOffset,
SQLSMALLINT SourceCType,
SQLPOINTER Source,
SQLINTEGER *ByteLength,
SQLINTEGER *CharLength,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
DestLocator
입력
LOB locator
DestOffset
입력
LOB 데이터에 쓸 위치
SourceCType
입력
쓸 데이터의 C의 타입
Source
입력
쓸 데이터의 포인터
ByteLength
출력
BLOB 타입의 쓴 데이터 길이
CharLength
출력
CLOB 타입의 쓴 데이터 길이
Indicator
입력
NULL 지시자의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
24000
잘못된 커서 상태인 경우
HY000
일반적 에러
HY001
메모리 할당 에러
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
IM001
드라이버가 SQLLobPutData 함수를 지원하지 않는 경우
SQLLobTruncate
LOB 데이터를 잘라내는 함수입니다.
문법
SQLRETURN SQLLobTruncate (SQLHSTMT StatementHandle,
SQLINTEGER *Locator,
SQLBIGINT NewLength,
SQLINTEGER *Indicator);
파라미터
파라미터
용도
설명
StatementHandle
입력
문장 핸들
Locator
입력
LOB locator
NewLength
입력
잘린 후 LOB 데이터의 새로운 길이
Indicator
입력
NULL 지시자의 포인터
반환 코드
반환 코드
설명
SQL_SUCCESS
함수가 성공적으로 완료된 상태
SQL_SUCCESS_WITH_INFO
함수가 성공적으로 완료되었으나, 경고 메시지가 있는 상태
SQL_INVALID_HANDLE
입력 파라미터에 주어진 핸들이 유효하지 않은 상태
SQL_STILL_EXECUTING
이전에 실행한 SQL 문장이 완료되지 않은 상태
SQL_ERROR
치명적인 에러가 발생한 상태
SQLSTATE
SQLSTATE
설명
01000
일반적인 경고
01004
문자열 데이터가 오른쪽에서 잘린 경우
07006
제한된 데이터 타입의 속성에 위배되는 경우
07S01
디폴트 파라미터가 잘못 사용된 경우
08S01
서버와의 통신 연결에 실패한 경우
HY000
일반적인 에러
HY001
메모리 할당 에러
HY008
연산이 취소된 경우
HY009
NULL 포인터를 잘못 사용한 경우
HY010
함수 시퀀스 에러
HY013
메모리 관리 에러
HY019
문자 및 바이너리가 아닌 데이터를 나누어 보낸 경우
HY090
잘못된 문자열 또는 버퍼 길이
HYT01
데이터베이스 연결 제한 시간을 초과한 경우
Last updated