cci_execute
설명
prepare된 SQL 문과 바인드된 데이터에 의해서 질의를 수행한다. max_col_size는 SELECT 문에 대해 fetch될 때 컬럼의 최대 크기를 지정한다. 컬럼이 CHAR, VARCHAR, NCHAR, VARNCHAR, BIT, VARBIT일 경우 클라이언트(client)로 전송되는 컬럼의 크기이다. max_col_size가 0일 경우 전체 데이터를 받는다.
prepare 시 사용된 SQL 문이 여러 개의 쿼리로 구성되어 있을 경우 CCI_EXEC_QUERY_ALL flag가 설정되어 있는 경우 전체 질의를 모두 실행하고 flag가 설정되어 있지 않은 경우 첫 번째 질의만 실행한다.
CCI_EXEC_QUERY_ALL flag가 설정되어 있는 경우 :
- 리턴 값은 첫 번째 질의에 대한 결과이다.
- 질의 중 하나에서 에러가 발생할 경우 execute는 실패한 것으로 처리된다.
- q1; q2; q3와 같이 구성된 질의에 대해서 q1을 성공하고 q2에서 에러가 난 경우 q1의 수행 결과는 유효하다. 즉, 에러가 발생했을 때 이전에 성공한 질의 수행에 대해서 롤백하지 않는다.
- 질의가 성공적으로 수행된 경우 두 번째 질의에 대한 결과는 cci_next_result를 통해서 얻을 수 있다.
구문
int cci_execute(int req_handle, char flag, int max_col_size, T_CCI_ERROR *err_buf)
- req_handle : (IN) prepare된 SQL 문의 요청 핸들
- flag : (IN) exec flag
- CCI_EXEC_ASYNC : async query
- CCI_EXEC_QUERY_ALL
- max_col_size : (IN) fetch되는 컬럼의 크기
- err_buf : (OUT) 데이터베이스 에러 버퍼
리턴 값
- 성공 :
- SELECT (sync mode) : 결과 개수, (async mode) : 0
- INSERT, UPDATE : 반영된 튜플 개수
- 기타 : 0
- 실패 : 에러 코드