본문 바로가기
개발 이야기/리눅스 이야기

리눅스 C ODBC 데이터베이스 연동 SQLBindParameter Insert 예제(linux C ODBC example, unixodbc)

by 런던살자 2019. 5. 1.

안녕하세요 마블랑입니다. 

 

지난번 포스팅으로 리눅스 환경에서의 ODBC를 이용하여 데이터베이스 데이터를 가져오는 Select 예제를 해보았습니다.

 

이번에는 데이터베이스에 데이터를 삽입하는 Insert 예제에 대해서 진행해보겠습니다.

 

 

Insert 예제도 Select 예제도 모두 DB에 접속정보는 갖기 때문에 ODBC에 연결하는 코드 상단 부분은 동일합니다.

 

그래서 전체코드는 첨부파일을 확인하시고 바뀌는 부분에 대해서 간단히 설명만 확인하시기 바랍니다.

 

 

odbc_Insert.c
0.00MB

 

우선 SQLPrepare 와 같이 Insert Query 문을 작성해줍니다. 

 

이때 중요한것은 values 부분에 삽입하는 컬럼 개수만큼 '?' 로 채워주시기 바랍니다.

 

그 다음은 SQLBindParameter 함수를 이용하여 Insert Query 문 values 부분에 데이터를 매핑해야 합니다.

 

테이블 컬럼의 데이터 타입은 (int, varchar[20], int) 입니다. 이것을 참고하시고 맞게 변수와 사이즈 부분등 수정하시면 되겠습니다. 

매핑을 하는 변수는 상단에 다음과 같이 선언해줍니다. 

위와 같이 선언을 했으면 이제 Insert 문을 간단하게 실행할수 있는데요

 

바로 매핑된 변수에 데이터만 넣어주고 SQLExecute 함수만 실행을 하면 데이터가 들어가는것을 확인할수 있습니다.

컴파일 한 뒤 확인해 보겠습니다.

 

컴파일은 Select 문과 동일한 커맨드를 입력하면 됩니다.

 

gcc (C파일.c) -o (생성파일명) -lodbc

그리고 실행을 해보겠습니다. 

정상적으로 데이터가 들어갔는지 이전에 구현한 Select 예제 프로세스를 실행해보겠습니다.

맞게 들어갔습니다.

 

 

C 언어로 데이터베이스 연동은 그동안 해본적이 없었는데 생각보다 간단하더군요

 

C++ 이나 C# 등 다른 언어에서는 Insert 구문을 한번씩 실행해 줘야 데이터 삽입이 되었던걸로 기억하는데 저렇게 변수의 데이터만 바꾸는 것으로 데이터가 삽입되니 데이터 매핑 부분은 헷갈려도 사용은 간단한거 같습니다.

 

Insert나 ODBC 연동은 실제로 사용해본적이 없어 코드의 대한 자세한 설명은 현재는 생략하고 기회가 된다면 함수 하나하나를 살펴보려고 합니다.

 

이상 마블랑이었습니다. 읽어주셔서 고맙습니다.

 

댓글