prepare된 요청 핸들에 대해서 파라미터를 바인딩한다. 주어진 a_type의 value의 값을 실제 바인딩되어야 하는 타입으로 변환하여 저장한다. 이 후, cci_execute()가 발생할 때 저장된 데이터가 서버로 전송된다. 같은 index에 대해서 여러 번 cci_bind_param()을 호출할 경우 마지막으로 설정한 값이 유효하다.
데이터베이스에 NULL을 바인딩할 경우 다음의 두 가지 형태를 가질 수 있다.
flag에 CCI_BIND_PTR이 설정되어 있을 경우 CCI_A_TYPE_STR, CCI_A_TYPE_BIT, CCI_A_TYPE_SET에 대해 value 포인터를 복사하고, 값은 복사하지 않는다. CCI_BIND_PTR이 설정되어 있지 않을 경우 메모리를 할당하고 값을 복사해 둔다. 만약 같은 메모리 버퍼를 이용하여 여러 개의 컬럼을 바인딩할 경우 CCI_BIND_PTR을 설정하지 않아야 한다.
a_type에 대한 value의 data type은 다음과 같다.
a_type |
value 타입 |
---|---|
CCI_A_TYPE_STR |
char** |
CCI_A_TYPE_INT |
int* |
CCI_A_TYPE_FLOAT |
float* |
CCI_A_TYPE_DOUBLE |
double* |
CCI_A_TYPE_BIT |
T_CCI_BIT* |
CCI_A_TYPE_SET |
T_CCI_SET* |
CCI_A_TYPE_DATE |
T_CCI_DATE* |
CCI_A_TYPE_BIGINT |
int64_t |
int cci_bind_param(int req_handle, int index, T_CCI_A_TYPE a_type, void *value, T_CCI_U_TYPE u_type, char flag)