JWDBライブラリ(jwdb.rb)は、JoyWatcher付属の標準データベースJWDB(idbファイル)をRubyから使用するライブラリです。
使用したrubyのバージョン 2.6.3p62 (RubyInstaller 32ビット)
使用したJoyWatcherのバージョン 9.0.0
jwdb.rbのダウンロード(jwdb_v111.7z)
Jwdbtクラス JWDB用クラスです。
作成例 jwdb = jwdbt.new(__ENCODING__)
引数に文字のエンコーディング「__ENCODING__」を指定します。シフトJIS(magic comment:「Windows-31j」,「shift_jis」)とUTF-8が有効です。
テーブル、インデックスの作成、書き込み、読み込みの例です。日付時間は、JoyWatcherの日付時間値としています。
# -*- coding: utf-8 -*-
# jwdb サンプル0
require 'date'
require './jwdb'
jwdb = Jwdbt.new(__ENCODING__)
ir = jwdb.connect("localhost")
if ir != 0
print "JWDB接続エラー¥r¥n"
exit
end
print "JWDB接続成功¥r¥n"
sSQL = "CREATE TABLE IF NOT EXISTS tbl6 (" +
"id int PRIMARY KEY," +
"ptime real," +
"cnote text)"
jwdb.execSQL(sSQL)
sSQL = "CREATE INDEX IF NOT EXISTS indx6 ON tbl6 (ptime)"
jwdb.execSQL(sSQL)
sSQL = "SELECT max(id) FROM tbl6"
jwdb.execSQL(sSQL)
id = 0
if jwdb.rowCount != 0
id = jwdb.columnText(0,0).to_i
end
id += 1
dta = DateTime.now
ir, jwdt = encodeJwDateTime(dta.year, dta.mon, dta.day, dta.hour, dta.min, dta.sec)
sSQL = "INSERT INTO tbl6 VALUES (" + id.to_s + "," + jwdt.to_s + ",'日本abc123')"
jwdb.execSQL(sSQL)
sSQL = "SELECT * FROM tbl6 ORDER BY id DESC LIMIT 5"
jwdb.execSQL(sSQL)
sa = ""
for ix in 0..(jwdb.colCount - 1)
sa += jwdb.columnName(ix) + ","
end
print sa + "¥r¥n"
for iy in 0..(jwdb.rowCount - 1)
sa = jwdb.columnText(iy,0)
dta = fromJwDateTime(jwdb.columnText(iy,1).to_f)
sa += "," + dta.strftime("%Y-%m-%d %H:%M:%S") + "," + jwdb.columnText(iy,2)
print sa + "¥r¥n"
end
jwdb.close
jwdb.disconnect
履歴