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_result_info

설명

prepared statement가 SELECT일 경우, 이 함수를 이용하여 실행 결과에 대한 칼럼 정보가 저장되어 있는 T_CCI_COL_INFO 구조체를 가져올 수 있다. SELECT 질의가 아닌 경우, NULL을 반환하고 num 값은 0이 된다.

T_CCI_COL_INFO 구조체에서 칼럼 정보를 가져오기 위해서 구조체에 직접 접근해도 되지만, 다음과 같이 정의된 매크로를 이용하여 정보를 가져올 수 있다. 각 매크로의 인자로 T_CCI_COL_INFO 구조체의 주소와 칼럼 인덱스가 지정되며, 매크로는 SELECT 질의에 대해서만 호출할 수 있다. 매크로에서 입력받는 각 인자에 대한 유효성 검사가 이루어지지 않으므로 주의한다. 매크로 리턴 값의 타입이 char*인 경우 메모리 포인터를 해제(free)하지 않아야 한다.

매크로

리턴 값 타입

의미

CCI_GET_RESULT_INFO_TYPE

T_CCI_U_TYPE

칼럼의 type

CCI_GET_RESULT_INFO_SCALE

short

칼럼의 scale

CCI_GET_RESULT_INFO_PRECISION

int

칼럼의 precision

CCI_GET_RESULT_INFO_NAME

char*

칼럼의 이름

CCI_GET_RESULT_INFO_ATTR_NAME

char*

칼럼의 속성 이름

CCI_GET_RESULT_INFO_CLASS_NAME

char*

칼럼의 클래스 이름

CCI_GET_RESULT_INFO_IN_NON_NULL

char (0 or 1)

칼럼이 NULL인지 여부

구문

T_CCI_COL_INFO* cci_get_result_info(int req_handle, T_CCI_CUBRID_STMT *stmt_type, int *num)

  • req_handle : (IN) prepared statement에 대한 요청 핸들
  • stmt_type : (OUT) command 타입
  • num : (OUT) SELECT 문의 칼럼 개수(stmt_typeCUBRID_STMT_SELECT일 경우)
리턴 값
  • 성공 : result info 포인터
  • 실패 : NULL
예제

col_info = cci_get_result_info (req, &stmt_type, &col_count);

  if (col_info == NULL)

    {

      printf ("get_result_info error: %d, %s ", cci_error.err_code,

              cci_error.err_msg);

      goto handle_error;

    }

  for (i = 1; i <= col_count; i++)

    {

      printf ("%-12s = %d ", "type", CCI_GET_RESULT_INFO_TYPE (col_info, i));

      printf ("%-12s = %d ", "scale",

              CCI_GET_RESULT_INFO_SCALE (col_info, i));

      printf ("%-12s = %d ", "precision",

              CCI_GET_RESULT_INFO_PRECISION (col_info, i));

      printf ("%-12s = %s ", "name", CCI_GET_RESULT_INFO_NAME (col_info, i));

      printf ("%-12s = %s ", "attr_name",

              CCI_GET_RESULT_INFO_ATTR_NAME (col_info, i));

      printf ("%-12s = %s ", "class_name",

              CCI_GET_RESULT_INFO_CLASS_NAME (col_info, i));

      printf ("%-12s = %s ", "is_non_null",

              CCI_GET_RESULT_INFO_IS_NON_NULL (col_info,i) ? "true" : "false");