sqlglm 함수를 이용한 오류 메시지 출력하기


pro*c에서 쿼리 실행시 오류가 발생하면 sqlca 구조체에 sqlerrm 구조체에 있는 것을 활용하여 메시지를 출력을 할 수 있으나

sqlerrm.sqlerrmc가 항상 마지막 문자열에 null을 주는 것이 아니라 메시지가 제대로 출력 되지 않아 sqlerrm.sqlerrml 로 길이를 구해서

출력해야 되는 번거로움이 있다.

이런 번거로움 대신 sqlglm 함수를 사용하여 간단하게 메시지를 출력 해보자.



sqlglm 함수 알아보기


아래와 같이 해더를 추가한다.


    #include <sqlcpr.h>


함수의 원형은 아래와 같다.

void sqlglm( char* message_buffer, size_t * buffer_size, size_t * message_length);



오류 메시지 출력하는 예제를 보겠다.



#include <sqlcpr.h>

....

....


char msg_buf[512] = {0,};

size_t size_buf = 512;

size_t msg_len = 0;


EXEC SQL 

    UPDATE USER_TBL 

SET AGE = '50'

WHERE NAME LIKE '%Suzan%';


if( sqlca.sqlcode != 0 && sqlca.sqlcode != 1403 )

{

sqlglm( msg_buf, &size_buf, &msg_len );

prinf(" error[%s] \n", msg_buf );

}


반응형

'프로그램 > Pro*c' 카테고리의 다른 글

[Pro*c] sqlca 구조체 설명 ( 오류 처리 )  (0) 2017.07.17
[Pro*c] Connect, DisConnect  (0) 2016.11.22

+ Recent posts