Firebird初心者講座:C++(IBPP)


本ページでは、C++言語からFirebirdを利用する方法を説明します。

C++からデータベースにアクセスするには”IBPP”というクラスライブラリを利用します。
“IBPP”を利用することで、データの参照や更新以外にも、データベース作成、スイープの変更などの
管理操作まで行うことができます。

また、次のサンプルソースコードを使って、C++から接続を行いますので
“SampleConnect.cpp”という名前で保存しておいてください。

//OSに合わせてコメントアウト
#define IBPP_WINDOWS
//#define IBPP_LINUX

#ifdef IBPP_WINDOWS
#include <windows.h>
#endif

#ifdef IBPP_LINUX
#include <unistd.h>
#endif

#include <iostream&gt
#include <string&gt

#include "./core/ibpp.h"
#include "./core/all_in_one.cpp"

//環境に合わせて変更してください。
//-----------------------------------------------------------
    //接続ユーザ
    const char *USER = "tama";
    //接続パスワード
    const  char *PASS = "neko";
    //データベースファイルパス
    const char *DATABASE_FILEPATH 
        = "G:¥¥fdb¥¥TEST.FDB";

    //データ参照SQL
    const char *SQL_SELECT
        = "SELECT shopno,shopname,openday FROM petshop";
//-----------------------------------------------------------

int main() {
    IBPP::Database db;
    IBPP::Transaction tr;
    IBPP::Statement stmt;
   
    //データベース接続
    db = IBPP::DatabaseFactory("localhost",DATABASE_FILEPATH,
      USER,PASS);
    db->Connect();

    //トランザクション開始
    tr = IBPP::TransactionFactory(db,IBPP::amWrite, 
      IBPP::ilConcurrency, IBPP::lrWait);
    tr->Start();

    //ステートメント作成
    stmt = IBPP::StatementFactory(db, tr);

    //SELECT文
    stmt->Execute(SQL_SELECT);

    //レコード格納用
    int icol; //数値型
    std::string scol; //文字列型
    IBPP::Date dcol; //DATE型
    int year,mon,day; //DATE型変換先

    //SQL実行結果表示
    for (int i = 0;stmt->Fetch();i++) {
        //SQLを変更したときは以下も合わせて変更
        stmt->Get(1,icol);  //数値型
        stmt->Get(2,scol);  //文字列型
        stmt->Get(3,dcol);  //日付型
        
        //DATE型をint型変数に変換
        dcol.GetDate(year,mon,day);
    
        std::cout
          << (i + 1)
          << " : "
          << icol
          << ","
          << scol.c_str()
          << ","
          << year
          << "/"
          << mon
          << "/"
          << day
          << "¥n";
    }

    // クローズ処理はこの順番で行う
    stmt->Close();
    tr->Commit();
    db->Disconnect();
}

“IBPP”を利用するにはIBPPクラスライブラリが必要となりますので

IBPP公式サイト
からダウンロードします。

  1. サイトの”Where can I get IBPP?”にある”development pages”リンクを押下します。

  2. “Download Now”を押下します。

  3. 数秒経つとダウンロードが始まります。
    始まらない場合は”Direct Link”を選択します

  4. ダウンロードしたzipファイルを解凍します。
    “core”フォルダ以下にIBPPのクラスライブラリがあります。

  5. “core”フォルダを”SampleConnect.cpp”と同じフォルダにコピーします。

  6. コマンドプロンプトから”cd <移動先フォルダ>”と入力し、
    “SampleConnect.cpp”を配置したフォルダに移動します。

  7. C++コンパイラでプログラムのコンパイルを行います。
    Windows : bcc SampleConnect.cpp
    Linux : g++ SampleConnect.cpp -lfbclient
    ※例ではbcc、g++コンパイラ使っています。事前にインストール、環境変数の設定が必要です。

  8. コンパイルしてできたプログラムを実行します。
    Windows : a.exe
    Linux : ./a.out

    IBPPの詳細な使い方については、IBPP公式サイト
    の”reference documentation”および
    ダウンロードしたzipファイルのtestsフォルダを参照してください。

Firebird初心者講座 目次

Firebird関連書籍

  • Firebird徹底入門
    Firebirdをやるなら必須!インストールから実際の運用方法、便利なツール、各言語からの利用方法など幅広く紹介されています。
  • The Firebird Book~
    アーキテクチャについて書かれていますが洋書。詳しく知りたい方なら読んでおくべき。
  • オープンソースデータベースの導入と運用の実際
    少し古いですが基本は今も同じ。中古で安く買えます。
スポンサーリンク

コメント投稿は締め切りました。