ubuntu 16.04でsociを設定してOracle、MySQL、PostgreSQL、odbcを接続します(夢に接続)


ubuntu 16.04でsociを設定してOracle、MySQL、PostgreSQL、odbcを接続します(夢に接続)
  • 原理
  • 参照
  • 設置前提
  • Oracleをインストールする際の煩わしさ:
  • ステップ:
  • げんり
    sociはgithub上でC++に基づいて複数のデータベースを接続するオープンソースプロジェクトであり、lisenceはboostと同じである.C++を使用してデータベースに接続すると便利です.
    リファレンス
    公式サイトには比較的詳細なインストール紹介がありますが、私の実際の経験でインストール過程を記録します.
    インストールの前提
    ubuntuにインストールされていることを保証します.
  • C++ compiler: GCC, Microsoft Visual C++, LLVM/clang
  • CMake 2.8+ - in order to use build configuration for CMake
  • Boost C++Libraries:DateTime,Fusion,Optional,Preprocessor,Tupleといったコアベースライブラリ.

  • 次に、Oracle、MySQL、PostgreSQL、ODBCの各データベースのクライアント・エンド・インタフェースをインストールし、Cベースで、対応するincludeおよびlibファイルをインストールします.
  • DB2 Call Level Interface (CLI)
  • Firebird client library
  • mysqlclient - C API to MySQL
  • ODBC (Open Database Connectivity) implementation: Microsoft ODBC, iODBC, unixODBC
  • Oracle Call Interface (OCI)
  • libpq - C API to PostgreSQL
  • SQLite 3 library

  • Oracleをインストールするときは、次のように面倒です.
  • 参考oracle公式サイト
  • 重要なのは、libaioではなくsudo apt-get install libaio 1です.

  • プログラミングの解決:
  • 在.zshrc(あるのは.bashrc)の構成:export TNS_ADMIN=/opt/oracle/product/11.2.0/dbhome_1/network/admin/これはserverを接続するサービス構成を構成するためです.
  • tnsnamesを構成する.oraファイル、具体的な意味の参考:ORACLEの配置、tnsnamesを修正します.oraファイルの例私の構成はこうです:ORCL= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=10.108.208.175)(PORT=1521)) ) (CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=orcl) ) )
  • コード例:
  • main.cpp:
  •    #include 
       #include
       #include
       #include
       #include
       #include
       #include
       #include
       
       using namespace std;
       using namespace soci;
       
       
       int main() {
       	session sql(oracle,"service=orcl user=iovuser password=iov123");
       	cout << "has connected!!"<
  • makefile:
  • all: main.cpp
     g++ -std=c++11 -Wall -g -o main main.cpp -I/opt/oracle/product/11.2.0/dbhome_1/rdbms/public/  -L/usr/local/lib64/ -lsoci_core -lsoci_oracle -ldl
    clean:
    
    

    手順:
  • git clone https://github.com/SOCI/soci.gitディレクトリの下にある
  • 現在のディレクトリの下でmkdir buildおよびcd build
  • 実行コマンド:cmake -G "Unix Makefiles" -DWITH_BOOST=ON -DSOCI_TEST=ON -DWITH_ORACLE=ON -DORACLE_INCLUDE_DIR="/opt/oracle/product/11.2.0/dbhome_1/rdbms/public/" -DSOCI_ORACLE=ON -DWITH_DB2=OFF -DWITH_FIERBIRD=OFF -DWITH_SQLITE3=OFF -DPOSTGRESQL_INCLUDE_DIR=/usr/include/postgresql -DORACLE_LIBRARIES=/opt/oracle/instantclient_12_2 ../soci
  • 上のコマンドでは、システムが自分で見つけたpathを自分で設定することはできません.私は不要なデータベースをOFFにし、oracleのpathをOCIのインストールパスに設定します.
  • ダモン接続データベースはodbcで、ODBCをインストールし、/etc/odbcを構成する.iniおよび/etc/odbcnst.iniファイル
  • その後buildディレクトリの下でmakeとsudo make installを実行すると
  • のインストールが完了します.