3-b7. D DBI でデータベース

初出: 2007/03/07
最新: 2007/03/07
[3. D言語各論] に戻る

D DBI とは

D DBI とは、 D言語からデータベースに接続するためのライブラリです。

MS SQL Server & Sybase, MySQL, ODBC, PostgreSQL, SQLite3 に対応しているそうです。とはいえ私は実は SQLite しか使ったことがないので、 ここは SQLite と合わせて使う使い方の説明です。

インストール方法

D DBI

トップページの最下部から、 "Recommended" をダウンロードするのがオススメです。展開したディレクトリ内で

> dmd -version=Phobos -run buildme.d all

と打ち込むと、ビルドが完了して dbi.lib ができます。(gdcの場合は、buildme.dを普通に コンパイルしてから実行すればOKです。)この lib と、 *.d の入った dbi ディレクトリをDMDに認識させればOKです。 (参照: 外部ライブラリの使い方

SQLite

ダウンロードページ から、 sqlitedll-3_3_**.zip をダウンロードします。DigitalMars の Basic Utilities に入っている implib を使って

> implib /system sqlite3.dll

とすると sqlite3.lib が作れます。これもリンクに必要です。

使い方

import dbi.sqlite.all;
import std.cstream;

void main()
{
    Database db = new SqliteDatabase();
    db.connect("test.db");

    Row[] rows = db.queryFetchAll("SELECT * FROM names");
    foreach( row; rows )
    {
        dout.writefln( "name: %s", row["name"] );
        dout.writefln( " zip: %s", row["zip"] );
    }

    db.close();
}
> dmd -version=Phobos dbtest.d dbi.lib

こんな感じで。.queryFetchAll() か、.execute() メソッドでSQLのクエリを投げます。 文字列を直接投げるだけでなく、dbi.Statement で PreparedStatement もできます。 詳しくは付属のドキュメントをどうぞ。

[3. D言語各論] に戻る

presented by k.inaba   under NYSDL.