0

3列のSQLiteハイスコアを作成しました。ランク (int)、スコア (long)、パーセンテージ (int)。列からすべてのデータを取得し、それらをユーザーが得たスコアと比較して、新しいスコアがトップ 10 を保持するハイスコア リストを作成したかどうかを確認しようとしています。

最初にパーセンテージでハイスコアを優先し、次にスコアを付けて引き分けにしたいと考えています。以下は、私がこれを始めているところです。私は正しい軌道に乗っていますか?Java以外でもSQLiteを使用したことがないので、これは私にとってまったく新しいことです。

よろしくお願いいたします。

//Check if new record makes the top 10.
public boolean check(int rank, long score, int percentage) {
    //SQL query to get last score/percentage if highscores has 10 records...
    long[] scores = new long[9];
    int[] percentages = new int[9];
    scores = db.execSQL("SELECT " + SCORE + " FROM " + TABLE + ";");  //Error:  Type mismatch
    percentages = db.execSQL("SELECT " + PERCENTAGE + " FROM " + TABLE + ";");  //Error:  Type mismatch
    //Algorithms to compare scores and percentages go here...
}
4

1 に答える 1

3
 scores = db.execSQL("SELECT " + SCORE + " FROM " + TABLE + ";");

execSQL無効を返します。

javadocに従って

SELECT ではない単一の SQL ステートメント、またはデータを返すその他の SQL ステートメントを実行します。

選択を行うには、クエリ(または) rawQueryメカニズムのいずれかを使用する必要がある場合があります。

于 2012-12-27T17:19:27.627 に答える