本ページでは、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~
アーキテクチャについて書かれていますが洋書。詳しく知りたい方なら読んでおくべき。 - オープンソースデータベースの導入と運用の実際
少し古いですが基本は今も同じ。中古で安く買えます。









