テーブルを作成したら、次はレコードを登録する。
これもsql_q命令でSQL文を実行するだけ。
SQLでレコードを追加するには、INSERT文を使う。文法はSQLiteでも一般的な構文でよさそう。
INSERT INTO scorelist (score,score_name,stage,rec_date) VALUES (100,'ALX','10',datetime('now','localtime'))
INSERT文は、INTOの後にテーブル名、カッコ内に更新したいカラム名、VALUESの後に各カラムに対応する登録したい値をセットする。
培養臼Exでは、ゲームオーバー時にハイスコアがトップ10に入ったら、ネームエントリー画面にして、データベースにINSERT文で追加しよう。
データベースには、適当なレコードを登録しておき、ハイスコアのトップテンを表示するための準備をしておいて、今度はデータを取得する。
データベースからデータを取得するには、SELECT文を使う。
全データを取得するのは無駄なので、上位10レコードだけを取得する。
SELECT * FROM scorelist ORDER BY score DESC ,rec_date LIMIT 10
SELECTの後には、カラム名を書くんだけど、*で全カラムの指定。FROMはテーブル名。
ORDER BYは、並べ替え。カラム名を書いてやるとその中の値で並べ替えてくれる。
DESCのキーワードは降順。これで、スコアの高い順に並べてくれる。
最後は、LIMIT句。これで何レコード取得するかを制限できる。LIMIT 10と書いておけば、スコアのトップテンが取得できる。
こうして実行したSQLの結果は、件数がstatに、それ以外は指定した変数に格納される。
変数指定を外せば、共通でtmparrという変数に入れてくれるので、よほどのことがなければ、省略でいい。
あとは、ループを回して、表示、次のレコードに進めると処理すれば、ハイスコアランキングが出来上がる(だろう)
sql_q "SELECT * FROM scorelist ORDER BY score DESC ,rec_date LIMIT 10"
count = stat
repeat count
mes "score="+sql_v("score")
sql_next
loop
培養臼に組み込むなら、この程度のテストで大丈夫かなぁ。