吉里吉里プラグイン util_sqlite:SQLite3 インターフェース

  1. 概要
  2. メンバ一覧

1. 概要

SQLite3へのインターフェース用クラスです。

データベースファイルのオープン〜クローズ、SQL妥当性チェック、 SQL即時実行、プリコンパイルステートメント(Prepared Statement)、 トランザクション制御、カーソル処理等をサポートします。

このプラグインをリンクすると、以下の3つのクラスを扱えるようになります。

上記のうち、SQLite3クラス以外は 明示的にクラスインスタンスを作成してはいけません。 必ず SQLite3.createStatementSQLite3Statement.openCursorなど、所定の関数経由でインスタンスを取得してください。 これらの手続きを踏まずに作成した場合、そのインスタンスは常に閉じた状態なので、利用することはできません。

このプラグインで例外が発生した場合、関連するコネクションは即座に クローズされます。 つまり、コネクションで発生した場合はもとより、生成されたステートメントまたはカーソルで例外が発生した場合でも、親のコネクションはクローズされます ( SQLite3.onErrorCloseプロパティを参照)。

このプラグインを使った、大まかな処理の流れを以下に示します。

// ---------------------------------
// 基本
// ---------------------------------
// DBインスタンス作成
var db = new SQLite3();
// データベースファイルをオープン
db.open('test.db');
// ちょっとしたSQL実行にはexecuteQuery()が便利
db.executeQuery("create table foo ( a number, b varchar );");
// 開けたら閉める
db.close();
// ---------------------------------
// トランザクション
// ---------------------------------
var db = new SQLite3();
db.open('test.db');
// トランザクション開始
db.beginTrans();
db.executeQuery("insert into foo values (1, 'Hello world.');");
db.executeQuery("update foo set b = 'Hello SQLite.' where a = 1;");
// コミット
db.commit();
db.close();
// ---------------------------------
// プリコンパイルステートメント
// ---------------------------------
var db = new SQLite3();
db.open('test.db');
// SQLite3Statementクラスインスタンスを取得
var statement = db.createStatement("insert into foo values (?, ?);");
// 1つ目のカラム (a)
statement.setParam(1, 5); 
// 2つ目のカラム (b)
statement.setParam(2, 'Hello TJS.'); 
// SQL実行
statement.execute();
db.close();
// ---------------------------------
// カーソルを使ったフェッチ
// ---------------------------------
var db = new SQLite3();
db.open('test.db');
var statement = db.createStatement("select * from foo;");
// SQLite3Cursorクラスインスタンスを取得
var cursor = statement.openCursor();
// シーケンシャルリード
while (cursor.next()) {
  // 列データ取得
  var a = cursor.value(0);
  var b = cursor.value(1);
  var aAsStr = cursor.value(0, tpsqString); // 強制型変換も可能
}
// 開けたら閉める
cursor.close();
db.close();

2. メンバ一覧

このプラグインをリンクすると、下記のメンバが追加されます。