Comment utiliser des instructions préparées dans SQlite sous Android?
Réponses
Trop de publicités?Si vous voulez un curseur sur le retour, alors vous pourriez envisager quelque chose comme ceci:
SQLiteDatabase db = dbHelper.getWritableDatabase();
public Cursor fetchByCountryCode(String strCountryCode)
{
/**
* SELECT * FROM Country
* WHERE code = US
*/
return cursor = db.query(true,
"Country", /**< Table name. */
null, /**< All the fields that you want the
cursor to contain; null means all.*/
"code=?", /**< WHERE statement without the WHERE clause. */
new String[] { strCountryCode }, /**< Selection arguments. */
null, null, null, null);
}
/** Fill a cursor with the results. */
Cursor c = fetchByCountryCode("US");
/** Retrieve data from the fields. */
String strCountryCode = c.getString(cursor.getColumnIndex("code"));
/** Assuming that you have a field/column with the name "country_name" */
String strCountryName = c.getString(cursor.getColumnIndex("country_name"));
Voir cet extrait Genscripts au cas où vous en voudriez un plus complet. Notez qu'il s'agit d'une requête SQL paramétrée. Il s'agit donc essentiellement d'une instruction préparée.
exemple jasonhudgins ne fonctionnera pas. Vous ne pouvez pas exécuter une requête avec stmt.execute () et obtenir une valeur (ou un curseur).
Vous pouvez uniquement précompiler des instructions qui ne renvoient aucune ligne (comme une instruction insert ou create table) ou une seule ligne et une seule colonne (et utilisez simpleQueryForLong () ou simpleQueryForString ()).