Probleme sqlite Illegal argument exeption
Bonjour, j’essai depuis quelque temps de réaliser un programme permettant d'ajouter deux variable dans une base de donnée sqlite.
Mais voila une erreur que je n’arrive pas a résoudre:
Code:
1 2 3 4 5 6
| 03-12 09:57:49.063: E/AndroidRuntime(229): Uncaught handler: thread main exiting due to uncaught exception
03-12 09:57:49.113: E/AndroidRuntime(229): java.lang.IllegalArgumentException: HAVING clauses are only permitted when using a groupBy clause
03-12 09:57:49.113: E/AndroidRuntime(229): at android.database.sqlite.SQLiteQueryBuilder.buildQueryString(SQLiteQueryBuilder.java:170)
03-12 09:57:49.113: E/AndroidRuntime(229): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1105)
03-12 09:57:49.113: E/AndroidRuntime(229): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1066)
03-12 09:57:49.113: E/AndroidRuntime(229): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1143) |
Mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
public class DatabaseHelper extends SQLiteOpenHelper {
/**
* Nom de la DB (nom du fichier SQLite).
*/
private static String DATABASE_NAME = "accesdbtests.db";
/**
* Numéro de version de la DB.
* Si ce numéro change, la fonction onUpgrade est exécutée
* pour effacer le contenu de la DB et recréer la nouvelle
* version du schéma.
*/
private static final int DATABASE_VERSION = 1;
/**
* Lien vers la session DB.
*/
private SQLiteDatabase db;
/**
* Nom de la table de la DB (oui une seule table).
* Il semblerait que la taille du nom soit limitée???
*/
private static String TABLE_PROGRAMMES = "Programs";
/**
* Script SQL de création de la table Programmes.
*/
private static String CREATE_TABLE_PROGRAMMES = "create table "
+ TABLE_PROGRAMMES + " ("
+ "techkey integer PRIMARY KEY AUTOINCREMENT,"
+ "exercice VARCHAR(250) NOT NULL," + "duree VARCHAR(250) NOT NULL"
+ ")";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
db = getWritableDatabase();
}
/**
* Exécuté si la DB n'existe pas.
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_PROGRAMMES);
}
/**
* Exécuté chaque fois que le numéro de version de DB change.
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PROGRAMMES);
onCreate(db);
}
/**
* Insère un utilsiateur dans la DB sur base du POJO Personne.
*/
public long insertExo(programme user) {
ContentValues exoToInsert = new ContentValues();
exoToInsert.put("exercice", user.getexercice());
exoToInsert.put("duree", user.getduree());
return db.insert(TABLE_PROGRAMMES, null, exoToInsert);
}
/**
* Charge le contenu de la table Programmes
* et retourne ce contenu sous la forme d'une liste de NOM + " " + PRENOM;
*/
public ArrayList<String> getprogramme() {
ArrayList<String> output = new ArrayList<String>();
String[] colonnesARecup = new String[] { "exercice", "duree" };
Cursor cursorResults = db.query(TABLE_PROGRAMMES, colonnesARecup, null,
null, null, "exercice asc, duree asc", null);
if (null != cursorResults) {
if (cursorResults.moveToFirst()) {
do {
int columnIdxExercice = cursorResults.getColumnIndex("exercice");
int columnIdxDuree = cursorResults.getColumnIndex("duree");
String exerciceduree = cursorResults.getString(columnIdxExercice)
+ " " + cursorResults.getString(columnIdxDuree);
output.add(exerciceduree);
} while (cursorResults.moveToNext());
} // end§if
}
return output;
}
} |
Merci d'avance pour votre aide