Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

cci_get_data

설명

현재 fetch된 결과에 대해서 col_no 번째의 값을 가져온다. 주어진 type 인자에 따라 value 변수의 타입이 결정되고, 이에 따라 value 변수로 값 또는 포인터가 복사된다.

값을 복사하는 경우 value 변수로 전달되는 주소에 대한 메모리가 할당되어 있어야 한다. 포인터 복사의 경우 응용 클라이언트 라이브러리 내의 포인터를 반환하는 것이므로, 다음 cci_get_data() 함수 호출 시 해당 값이 유효하지 않게 되므로 주의한다.

포인터 복사에 의해 반환된 포인터는 해제(free)하면 안 된다. 단, 타입이 CCI_A_TYPE_SET인 경우 T_CCI_SET 타입의 set 포인터를 메모리에 할당한 후 이를 반환하므로, set 포인터를 사용한 후에는 cci_set_free() 함수를 이용하여 할당된 메모리를 해제해야 한다. 아래는 type 인자와 그에 대응하는 value의 데이터 타입을 정리한 표이다.

type

value 타입

의미

CCI_A_TYPE_STR

char**

pointer copy

CCI_A_TYPE_INT

int*

value copy

CCI_A_TYPE_FLOAT

float*

value copy

CCI_A_TYPE_DOUBLE

double*

value copy

CCI_A_TYPE_BIT

T_CCI_BIT*

value copy (pointer copy for each member)

CCI_A_TYPE_SET

T_CCI_SET*

memory alloc and value copy

CCI_A_TYPE_DATE

T_CCI_DATE*

value copy

CCI_A_TYPE_BIGINT

int64_t* (Windows는 __int64*)

value copy

CCI_A_TYPE_BLOB

T_CCI_BLOB

memory alloc and value copy

CCI_A_TYPE_CLOB

T_CCI_CLOB

memory alloc and value copy

구문

int cci_get_data(int req_handle, int col_no, int type, void *value, int *indicator)

  • req_handle : (IN) 요청 핸들
  • col_no : (IN) 칼럼 인덱스. 1부터 시작.
  • type : (IN) value 변수의 데이터 타입(T_CCI_A_TYPE에 정의된 타입을 사용)
  • value : (OUT) 데이터를 저장할 변수의 주소
  • indicator : (OUT) NULL indicator. (-1 : NULL)
    • typeCCI_A_TYPE_STR인 경우 : NULL이면 -1을 반환하고, NULL이 아니면 value에 저장된 문자열의 길이를 반환
    • typeCCI_A_TYPE_STR이 아닌 경우 : NULL이면 -1을 반환하고, NULL이 아니면 0을 반환
리턴 값
  • 에러 코드(0 : 성공)
에러 코드
  • CCI_ER_REQ_HANDLE
  • CCI_ER_TYPE_CONVERSION
  • CCI_ER_COLUMN_INDEX
  • CCI_ER_ATYPE
참고 사항
  • LOB 타입에 대해 cci_get_data()를 호출하면 LOB 타입 칼럼의 메타 데이터(Locator)를 출력하며, LOB 타입 칼럼의 데이터를 인출하려면 cci_blob_read()를 호출해야 한다.