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 함수를 지원하지 않는 경우

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