培養臼のエクストラバージョンでは、ハイスコアをランキング形式で記録できる機能を作ろうと思っている。
テキストで管理すると、並べ替えが面倒なので、データベースを使いたい。
「SQLite」というデータベースなら、HSP3から操作するための拡張モジュールsqlele(スクレレ)がバンドルされていた。
複雑なデータ取得や、大量のデータを扱うわけではないので、これで十分だろう。
そして、SQLは、まったくの素人ではないので、抵抗感もなく、すんなり始められるだろう。
早速サンプルプログラムを動かしてみる。
#include "sqlele.hsp" sql_open "サンプル.db" ; 「ログテーブル」がない場合、テーブル作成 sql_q "CREATE TABLE IF NOT EXISTS [ログテーブル] (ID INTEGER PRIMARY KEY, [内容])" ; レコードを追加 sql_q "INSERT INTO [ログテーブル] ([内容]) VALUES (datetime('now','localtime'))" ; テーブル内のデータをすべて抽出 sql_q "SELECT * FROM [ログテーブル]" count = stat mes "記録件数 : " + count + " 件" repeat count mes "ID=" + sql_v("ID") + ", 内容=" + sql_v("内容") sql_next loop sql_close
ん?テーブルもカラムも日本語??
自分でDBを設計するなら、絶対に日本語は付けないから面食らったけど、別に自分で作るときは日本語を付けなければいいだけなので。
流れは、こんな感じか。
- スクレレをincludeする
- sql_open命令でデータベースファイルを開く
- sql_q命令でクエリを発行。
- sql_v命令でレコードごとのカラムの値を取得。
- ループさせつつ、sql_next命令で次のレコードにポインタを進める
- 処理が終わったらsql_close命令でデータベースファイルを閉じる
まぁ、データベースの使い方自体は、言語が違ってもそれほど変わらないから、わかりやすかったかな。
さて、これを踏まえて、組み込む準備をしますか。