Skip to end of metadata
Go to start of metadata

개요

 


UNIX_ODBC 와 altibase 연동관련 가이드입니다.



버전


ALTIBASE HDB 모든 버전

 


UNIX_ODBC 종류 및 URL


unix_odbc 는 open source project 로서 주로  unixODBC 가 사용됩니다.

1. unixODBC는 아래 링크에 다운로드 받으실 수 있습니다.
http://www.unixodbc.org/

 


INSTALL


$ mkdir $HOME/ODBC_HOME

$ gzip -d unixODBC-2.3.2.tar.gz

$ tar -xvf unixODBC-2.3.2.tar

 $ cd unixODBC-2.3.2

 $ cd $ALTIBASE_HOME/lib

libaltibase_odbc-64bit-ul64.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
 
  
$ ./configure -prefix=/home/wonsik/ODBC_HOME --enable-gui=no --enable-threads=yes

 

 

 

옵션설명

Icon
prefix : unixODBC를 설치할 경로
enable-gui :  GUI ODBC Administrator를 build 여부 
enable-threads : The default is "yes" if thread-support is found on your machine. All modern Linuxes will have pthreads support in glibc so it is probably best to leave this to default.
 
만일 enable-threads 옵션을 no로 설정할 경우  isql로 접속테스트시 아래 에러가 발생할 수 있습니다.
$ ./isql Altiodbc
./isql: symbol lookup error: /home/wonsik/altibase_home/lib/libaltibase_odbc-64bit-ul64.so: undefined symbol: pthread_sigmask
$ ./isql Altiodbc
./isql: symbol lookup error: /home/wonsik/altibase_home/lib/libaltibase_odbc-64bit-ul64.so: undefined symbol: pthread_sigmask
$ make
 
$ make install
 
$ cd ODBC_HOME
 
$ dltest $ALTIBASE_HOME/lib/libaltibase_odbc-64bit-ul64.so
SUCCESS: Loaded /home/wonsik/altibase_home/lib/libaltibase_odbc-64bit-ul64.so
  
$ cat odbc.ini
[ODBC Data Sources] 
Altiodbc = Altibase ODBC Driver 
 
[Altiodbc] 
Driver = /home/wonsik/altibase_home/lib/libaltibase_odbc-64bit-ul64.so
Description = Sample Altibase DSN 
UserName = SYS 
Password = MANAGER 
ServerType = Altibase 
Server = 127.0.0.1 
User = SYS 
Port = 40501
Database = mydb 
FetchBufferSize = 64 
ReadOnly = no 
TraceFile = /home/wonsik/ODBC_HOME/odbc.trace
Trace = 0
 Trace 옵션은 1 (debug) , 0 (normal) 을 의미함
 
$ export ODBCINI=/home/wonsik/odbc.ini
  
$ cd $HOME/ODBC_HOME/bin
  
$ odbc_config --ulen
-DSIZEOF_SQLULEN=8
  
 
$ ./isql Altiodbc
+---------------------------------------+
| Connected!                             |
|                                       |
| sql-statement                         |
| help [tablename]                     |
| quit                                   |
|                                       |
+---------------------------------------+
SQL> 

 

 

PHP, PERL 연동


PHP, PERL 등에서 unix_odbc 를 지원하므로 위의 방식으로 altibase와 연동할 수 있습니다.



PHP 연동 가이드

 



  1. 관련 환경 변수 설정

    반드시 사전에 아래 변수를 설정해주시기 바랍니다.

    export CFLAGS=-DBUILD_LEGACY_64_BIT_MODE=1

    export ODBCINI=odbc.ini 파일 위치 경로

    export LD_LIBRARY_PATH=$APACHE_HOME/modules:unixODBC설치경로/lib:PHP설치경로/lib


  2. SQLLEN, SQLULEN 확인

    unixODBC 설치 경로중 bin 디렉토리로 이동하여 odbcinst 명령을 이용해 SQLLEN size와 SQLULEN size가 4인지 확인합니다.

    4일 경우 32bit로 설정된 것이며, 8일 경우 64bit로 설정된 것입니다.

    $ ./odbcinst -j

    unixODBC 2.3.2

    DRIVERS............: /home/altibase/phptest/unixodbc/etc/odbcinst.ini

    SYSTEM DATA SOURCES: /home/altibase/phptest/unixodbc/etc/odbc.ini

    FILE DATA SOURCES..: /home/altibase/phptest/unixodbc/etc/ODBCDataSources

    USER DATA SOURCES..: /home/altibase/phptest/unixodbc/etc/odbc.ini

    SQLULEN Size.......: 4

    SQLLEN Size........: 4   <---4이면 32bit   8이면 64bit

    SQLSETPOSIROW Size.: 2


  3. unixODBC의 odbc.ini 파일 수정

    odbc.ini 파일에 LongDataCompat=ON을 추가해줌으로써 lob 데이터를 처리하도록 설정가능합니다.

  4. PHP 컴파일 및 설치 작업

    $> ./configure \
    --prefix=/user/web/php \
    --with-config-file-path=/user/web/php/conf \
    --with-apxs2=/user/web/apache2/bin/apxs \
    --with-unixODBC=/user/web/odbc \
    --with-mcrypt \
    --with-mhash \
    --with-openssl \
    --with-kerberos \
    --with-curl \
    --enable-dom \
    --with-iconv=/usr/local \
    --with-xmlrpc \
    --enable-libxml \
    --with-libxml-dir=/usr/lib64 \
    --with-gd \
    --with-freetype-dir=/usr \
    --with-jpeg-dir=/usr/lib64 \
    --with-png-dir=/usr/lib64 \
    --with-zlib-dir=/usr/lib64 \
    --enable-mbstring \
    --enable-shmop \
    --enable-sockets \
    --enable-sigchild \
    --enable-soap \
    --enable-zip \
    --enable-ftp \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --with-regex=php \
    --with-pcre-regex \
    --enable-mbregex \
    --enable-dba=shared \
    --enable-mod-charset \
    --with-xml \
    --with-pcre \
    --with-gdbm \
    --with-dbm

     

    $> make


    $> make install

  5. php.ini 설정

    memory_limit=-1

    odbc.defaultbinmode=1

    odbc.defaultlrl=1048576

  • No labels