리눅스에서 큐브리드 사용하는데 초기 컴파일 환경잡고 테이블 insert하려는데 에러가 나네요.
숫자형은 별도의 문자열에 저장후 작업해야된다고 해서 다음과 같이 작업했습니다.
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR user_id[16];
VARCHAR user_name[40];
DB_VALUE test_numeric_col;
EXEC SQL END DECLARE SECTION;
char numeric_buf[40];
uci_startup("testdbcon");
EXEC SQL whenever sqlerror call sql_error;
EXEC SQL CONNECT 'supream' identified by 'dba' with 'data1234';
strcpy(user_id.array, "Hong");
user_id.length = strlen(user_id.array);
strcpy(user_name.array, "홍길동");
user_name.length = strlen(user_name.array);
strcpy(numeric_buf, "123456.4321");
db_value_domain_init(&test_numeric_col, DB_TYPE_NUMERIC, 15, 4);
db_value_put(&test_numeric_col, DB_TYPE_C_VARCHAR, (void *)numeric_buf, strlen(numeric_buf));
EXEC SQL insert into oms_user(user_id,user_name, test_numeric_col)
values(:user_id, :user_name, :test_numeric_col);
EXEC SQL commit work;
EXEC SQL disconnect;
이걸 실행하면 다음 에러메세지가 납니다.
TestCubridInput.ec: In function 'int main()':
TestCubridInput.ec:55: error: invalid conversion from 'int' to 'DB_TYPE_C'
TestCubridInput.ec:55: error: initializing argument 5 of 'void uci_put_value(DB_INDICATOR*, DB_TYPE, int, int, DB_TYPE_C, void*, int)'
샘플에 있는거 그대로 같다 했는데 numeric형을 Insert하려니까 에러가 나네요...
참고로 numeric형을 제외한 string형만 Insert했을때는 제대로 돌아갔습니다.
그리고 숫자형(실수형이나 정수형)를 다루려면 문자열변환해서 하는 작업 말고는 바로 입력하는 방법은 있는지요?