本ページでは、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> #include <string> #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公式サイトからダウンロードします。
- サイトの”Where can I get IBPP?”にある”development pages”リンクを押下します。
- “Download Now”を押下します。
- 数秒経つとダウンロードが始まります。
始まらない場合は”Direct Link”を選択します
- ダウンロードしたzipファイルを解凍します。
“core”フォルダ以下にIBPPのクラスライブラリがあります。
- “core”フォルダを”SampleConnect.cpp”と同じフォルダにコピーします。
- コマンドプロンプトから”cd <移動先フォルダ>”と入力し、
“SampleConnect.cpp”を配置したフォルダに移動します。
- C++コンパイラでプログラムのコンパイルを行います。
Windows : bcc SampleConnect.cpp
Linux : g++ SampleConnect.cpp -lfbclient
※例ではbcc、g++コンパイラ使っています。事前にインストール、環境変数の設定が必要です。
- コンパイルしてできたプログラムを実行します。
Windows : a.exe
Linux : ./a.out
IBPPの詳細な使い方については、IBPP公式サイト
の”reference documentation”および
ダウンロードしたzipファイルのtestsフォルダを参照してください。
Firebird初心者講座 目次
- Firebirdデータベースの質問にも回答してくれるQAサイト
→エンジニア特化型Q&Aサイト「teratail」
IT系に特化してるのでかなり便利。 - Firebirdはじめに
Firebirdとは?
起動と停止
インストール
環境変数PATHの設定 - データベース作成・接続
ユーザ作成
データベース作成
データベース接続
テーブル作成
データの追加と参照 - メンテナンス・バックアップ
バックアップ・復元
スイープ - プログラムとの連携
Java(JDBC接続)
C++(IBPP)
OpenOffice Base(ODBC)
ODBCドライバのインストール - 管理ツールibWebAdmin
ibWebAdminとは?
ibWebAdminのインストール
ibWebAdminにアクセス
Firebird関連書籍
- Firebird徹底入門
Firebirdをやるなら必須!インストールから実際の運用方法、便利なツール、各言語からの利用方法など幅広く紹介されています。 - The Firebird Book~
アーキテクチャについて書かれていますが洋書。詳しく知りたい方なら読んでおくべき。 - オープンソースデータベースの導入と運用の実際
少し古いですが基本は今も同じ。中古で安く買えます。