알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
Oracle DB 연동 (QOCI) 리눅스 본문
Oracle DB 연동 (QOCI)
OCI BLOB/LOB Support 도 한다.
OCI BLOB/LOB Support 설명은 QT doc 에 잘 나와 있다.
오라클 9 버전과 10 버전 이상 드라이버 작성 방식이 다른데 기본 원리는 똑같으므로 10 버전 이상으로 설명 하겠습니다.
Qt 문서 설명된것으로는
cd $QTDIR/qtbase/src/plugins/sqldrivers/oci qmake "INCLUDEPATH+=/usr/include/oracle/10.1.0.3/client/" "LIBS+=-L/usr/lib/oracle/10.1.0.3/client/lib -lclntsh" oci.pro make
이렇게 나와 있습니다.
여기서 필요한 파일을 받고 드라이버를 직접 설치 해 보겠습니다.
필요한 파일을 받습니다. sdk와 기본 라이브러리 입니다.
현재 글 작성 날짜 기준으로
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
에서 배포 하고 있습니다.
저는 x86-64 에 리눅스 입니다.
그림에서 밑줄친 base 와 sdk 를 다운 받습니다.
그리고 압축을 풀면
우리가 필요한 헤더 파일과 clntsh 라이브러리가 있습니다.
/Qt/5.7/Src/qtbase/src/plugins/sqldrivers/oci$ /home/bhkim/Qt/5.7/gcc_64/bin/qmake "INCLUDEPATH+=/home/bhkim/instantclient_12_2/sdk/include" "LIBS+=-L/home/bhkim/instantclient_12_2 -lclntsh" ./oci.pro
make
make install
드라이브 설치를 완료 합니다.
설치 되게 됩니다 .
하지만 이 라이브러리 또한 OCIbase의 라이브러리를 사용하게 됩니다.
그리서 라이브러리를 기본으로 링크 할수 있게
/etc/ld.so.conf.d/ 에들어가서
oci.conf 를 만들고
내용은 oci 라이브러리가 있는 폴더로 설정해 줍니다.
oci.conf 에
/home/bhkim/instantclient_12_2
그리고
$ sudo ldconfig
그리고 소스 코드에서
project에
QT += core gui sql
sql 입력 하고
#include <qsqldatabase> QSqlDatabase mes_db; mes_db = QSqlDatabase::addDatabase("QOCI","TEST"); mes_db .setHostName("10.20.10.190"); mes_db .setUserName("TEST1234"); mes_db .setPassword("TEST1234"); mes_db .setDatabaseName("TESTDB"); if(!mes_db .open()){ qDebug()<<"open false"; }else { qDebug()<<"open db"; }
DB가 OPEN 되며 접속이 됩니다.
'QT > QSQL Database Drivers' 카테고리의 다른 글
Qt 우분투 QODBC 와 MSSQL(freetds) (0) | 2018.05.29 |
---|---|
우분투 (리눅스) qt sqldriver mysql 라이브러리 사용 (0) | 2018.04.04 |