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

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

by 런던살자 2019. 4. 26.

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

지난번 ODBC를 설치하고 DSN을 설정하였습니다.

이번에는 등록된 ODBC를 이용하여 C 프로세스를 만들어서 맞게 등록이 되었는지 확인해보겠습니다.


먼저 시작에 앞서 지난번 ODBC 등록된 것에서 약간의 추가 설명을 드리려고 합니다.

아래 화면에서 "temp1"이라는 DSN은 이번에 샘플을 제작해보며 새로 추가한 DSN인데요

화면에 표시된 DATABASE 부분은 실제로 사용할 Mysql의 데이터베이스 입니다. 


Mysql 커맨드로 use (데이터베이스명) 여기서 데이터베이스명을 가리킵니다.

DSN 등록 커맨드는 아래 표시된 부분을 사용할 데이터베이스명으로 수정하시면 됩니다.

 



이제 본격적으로 C 프로세스 ODBC 연동에 대해서 설명을 하겠습니다.

하지만 또 앞서 이전에 만들어 놓은 테이블에 데이터를 추가해놓겠습니다.


그럼 C코드를 작성해 보겠습니다.

vi에디터를 사용하든 gedit를 사용하든 편한걸로 확장자가 .c 인 파일을 생성하고 코드를 작성해주세요~

이 코드는 오픈소스를 활용하여 마블랑의 개인환경에 맞게 수정한 것입니다.


그럼 gcc를 이용하여 실행파일을 만들어 보겠습니다.

명령어는 다음과 같습니다. 


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


gcc를 할때 중요한것은 -lodbc 옵션을 주어 odbc 라이브러리를 이용하겠다는 것과 중간에 띄어쓰기가 한번씩 들어가야 한다는 점입니다.


그렇지 않으면 에러가 발생하더군요.. (이 문제로 시간이 꽤 걸렸습니다 ^^)


아래와 같이 아무런 결과가 나오지 않으면 실행파일 생성에 성공한 것입니다.


그럼 실행해보겠습니다.


프로그래밍 단계에서 콤마를 하나 빼먹었군요.

하지만 중요하지 않으니 건너뛰고.. 

이전에 등록해놓은 데이터들이 출력되는 것이 확인됩니다.

그럼 코드에 대해서 간단히 설명을 드리겠습니다. 코드가 필요하신분은 첨부파일을 확인해주세요~

odbc_example.c
0.00MB


코드 부분부분을 색상으로 표시해 두었습니다.

 

먼저 노란 표시는 DSN과 ID와 PW를 넣는 부분입니다. 문자열로 매개변수에 순서대로 넣으시면 됩니다.

 

다음은 초록 표시에 대핸 부분인데 이부분은 쿼리문이 들어갑니다.

 

이번 포스팅은 Select Sql문을 사용하는 예제입니다. Insert는 다음 포스팅에 진행하겠습니다.

 

하늘색 표시는 Select 문의 결과를 변수에 저장하는 것을 바인드 시키는 부분입니다. 이 부분을 통해서 SQLFetch라는 함수를 사용하게 됩니다.

 

분홍색 표시는 SQLFetch를 이용하여 데이터를 한개의 Row씩 가져와 표시하는 부분입니다.

 

데이터가 있다면 표시하고 없다면 반복문을 종료하고 나가게 됩니다.

 

 

지난번에 ODBC를 설정할때 잘못된 부분이 있나 확인하지를 못하여서 직접 프로세스를 만들어 확인해보았습니다.

 

데이터가 맞게 표시되는 것을 보니 ODBC를 잘 등록한거 같군요..

 

이번 포스팅은 간단한 Select문을 활용해보았지만 다음에는 Insert문을 통해 데이터를 직접 넣어보도록 하겠습니다.

 

 

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

 

  

 

댓글