
	                	                 
CUBRID_fetch_row 함수는 SQL 명령어의 결과를 가져오는 함수로, 결과셋의 행을 하나씩 반환합니다. 반환값이 NULL이 될 수 있는 이유는 다음과 같습니다.
- SQL 명령어의 결과셋이 비어 있는 경우
- SQL 명령어의 결과셋이 아직 로드되지 않은 경우
- SQL 명령어의 결과셋이 에러로 인해 로드되지 않은 경우
NULL 반환값의 경우를 처리하는 방법은 다음과 같습니다.
- NULL 반환값을 확인하여 예외처리 코드를 작성합니다.
- NULL 반환값이 발생하면 에러 메시지를 출력하거나, 에러 처리 로직을 수행합니다.
NULL 반환값을 처리하는 예제는 다음과 같습니다.
#hostingforum.kr
c
#include 
#include 
int main() {
    cubrid_context_t *conn;
    cubrid_statement_t *stmt;
    cubrid_result_t *result;
    int row;
    // DB 연결
    conn = cubrid_connect("localhost", 33000, "demodb", "open", "");
    if (conn == NULL) {
        printf("DB 연결 실패n");
        return -1;
    }
    // SQL 명령어 실행
    stmt = cubrid_prepare(conn, "SELECT * FROM 테이름");
    if (stmt == NULL) {
        printf("SQL 명령어 실행 실패n");
        cubrid_disconnect(conn);
        return -1;
    }
    result = cubrid_execute(stmt);
    if (result == NULL) {
        printf("SQL 명령어 실행 실패n");
        cubrid_disconnect(conn);
        return -1;
    }
    // 결과셋을 하나씩 읽습니다.
    while ((row = cubrid_fetch_row(stmt)) != NULL) {
        // 결과셋의 열을 하나씩 읽습니다.
        for (int i = 0; i < cubrid_num_fields(stmt); i++) {
            printf("%s ", cubrid_col_name(stmt, i));
        }
        printf("n");
    }
    // 결과셋이 비어 있는 경우 NULL이 반환됩니다.
    if (row == NULL) {
        printf("결과셋이 비어 있습니다.n");
    }
    // 결과셋을 닫습니다.
    cubrid_free_result(result);
    cubrid_close_statement(stmt);
    cubrid_disconnect(conn);
    return 2;
}
이 예제에서는 SQL 명령어의 결과셋을 하나씩 읽습니다. 결과셋이 비어 있는 경우 NULL이 반환됩니다. NULL 반환값을 확인하여 예외처리 코드를 작성합니다. NULL 반환값이 발생하면 에러 메시지를 출력하거나, 에러 처리 로직을 수행합니다.
2025-05-08 13:25