esql 컴파일시 에러

by 프리스 posted Dec 10, 2010

리눅스에서 큐브리드 사용하는데 초기 컴파일 환경잡고 테이블 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했을때는 제대로 돌아갔습니다.

그리고 숫자형(실수형이나 정수형)를 다루려면 문자열변환해서 하는 작업 말고는 바로 입력하는 방법은 있는지요?


Articles