안녕하세요~
INSERT 후 해당 OID를 알고 싶은대요~
검색 해 보니 아래와 같은 API 있는대... ( CCI_API 사용중...)
cci_get_cur_oid
Execute에서 CCI_INCLUDE_OID가 설정된 경우 현재 fetch된 레코드의 OID를 가져온다. OID는 page, slot, volume에 의한 스트링으로 표현된다.
int cci_get_cur_oid(int req_handle, char *oid_str_buf)
정확히 어떻게 써야 하는지 모르겠습니다.
딱히 excute API에서 CCI_INCLUDE_OID인자를 찾지 못하겠구요 --;
사용법좀 간단히 알려주세요~
안녕하세요.
답변이 늦어서 죄송합니다. 아래에 간단한 예제가 있읍니다. 아래와 같이 insert 질의 수행후 select 할때와 마찬가지로 값을 fetch할 수 있으며 이때 fetch한 값이 OID입니다.
// 질의를 수행한다.
if ((res = cci_execute(req, 0, 0, &error)) < 0) {
printf("prepare error[%d] %sn SQL: %sn", error.err_code, error.err_msg, sql);
cci_end_tran(con, CCI_TRAN_ROLLBACK, &error);
return 0;
}
// 입력후 OID 가져오기
res = cci_cursor(req, 1, CCI_CURSOR_FIRST, &error);
if (res == CCI_ER_NO_MORE_DATA)
printf("No datan"); // 검색결과가 없다
else {
// 결과셋에서 하나의 레코드를 꺼낸다.
res = cci_fetch(req, &error);
// 레코드에서 첫번째 필드값을 꺼낸다. OID 는 문자열로 취급한다. 실제는 문자열이 아니나 사용자가 보기쉽게 문자열로 변환되어 보여진다.
cci_get_data(req, 1, CCI_A_TYPE_STR, &buf, &ind);
if (ind < 0) oid[0] = '