
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