“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

150.HSPでゲームを作ろう:技術研究 データベースを使ってみる その1

培養臼のエクストラバージョンでは、ハイスコアをランキング形式で記録できる機能を作ろうと思っている。
テキストで管理すると、並べ替えが面倒なので、データベースを使いたい。

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を設計するなら、絶対に日本語は付けないから面食らったけど、別に自分で作るときは日本語を付けなければいいだけなので。

流れは、こんな感じか。

  1. スクレレをincludeする
  2. sql_open命令でデータベースファイルを開く
  3. sql_q命令でクエリを発行。
  4. sql_v命令でレコードごとのカラムの値を取得。
  5. ループさせつつ、sql_next命令で次のレコードにポインタを進める
  6. 処理が終わったらsql_close命令でデータベースファイルを閉じる

まぁ、データベースの使い方自体は、言語が違ってもそれほど変わらないから、わかりやすかったかな。
さて、これを踏まえて、組み込む準備をしますか。