Insérer une variable date dans un enregistrement
Résolu/Fermé
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
-
29 nov. 2020 à 18:47
BunoCS Messages postés 15909 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 31 mars 2025 - 7 déc. 2020 à 13:59
BunoCS Messages postés 15909 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 31 mars 2025 - 7 déc. 2020 à 13:59
A voir également:
- Insérer une variable date dans un enregistrement
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
- Insérer un filigrane word - Guide
- Insérer sommaire word - Guide
6 réponses
BunoCS
Messages postés
15909
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
31 mars 2025
3 914
Modifié le 3 déc. 2020 à 08:51
Modifié le 3 déc. 2020 à 08:51
Hello,
Pour récupérer un enregistrement de la base, j'utilise la méthode
Exemple :
Dans selection, je mets ma requête, genre
et dans selectionsArgs, je mets mes arguments, genre
Pour récupérer un enregistrement de la base, j'utilise la méthode
db.query().
Exemple :
final Cursor cursor = db.query(tableName, null, selection, selectionArgs, groupBy, having, orderBy, limit);
Dans selection, je mets ma requête, genre
"ID = ?"
et dans selectionsArgs, je mets mes arguments, genre
new String[]{"" + id}
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
Modifié le 5 déc. 2020 à 22:10
Modifié le 5 déc. 2020 à 22:10
Bonsoir,
Tout d’abord mes excuses pour mes dérangements.
C'est impardonnable on arrête de se torturer les méninges !!!
Voila ce que tu m'as corrigé lors d'un message en réponse un peu plus haut:
Je viens de le reprendre ce soir et quelle n'a été ma surprise, ce code m'affiche bel et bien les produits à la date courante.
Je me demande ce que j'ai pu faire comme connerie ?
La date de naissance n'arrange pas les choses !!!
L'objectif est atteint lorsque l'activité s'ouvre elle affiche les produits à retirer du congelateur à partir de ce jour NOW.
Je te remercie mille fois pour ton aide qui a donnée forme à mon projet.
Dès que l'appli est finalisée je t’envoie l'APK.
Très cordialement à +++
rapidegoyes
Tout d’abord mes excuses pour mes dérangements.
C'est impardonnable on arrête de se torturer les méninges !!!
Voila ce que tu m'as corrigé lors d'un message en réponse un peu plus haut:
return db.rawQuery("SELECT ID as _id, * FROM book_table WHERE DATE = '"+ varDateReport +"'" , null);
Je viens de le reprendre ce soir et quelle n'a été ma surprise, ce code m'affiche bel et bien les produits à la date courante.
Je me demande ce que j'ai pu faire comme connerie ?
La date de naissance n'arrange pas les choses !!!
L'objectif est atteint lorsque l'activité s'ouvre elle affiche les produits à retirer du congelateur à partir de ce jour NOW.
Je te remercie mille fois pour ton aide qui a donnée forme à mon projet.
Dès que l'appli est finalisée je t’envoie l'APK.
Très cordialement à +++
rapidegoyes
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
29 nov. 2020 à 21:35
29 nov. 2020 à 21:35
bonsoir
J'ai changer une ligne dont voici l'extrait:
Lors de la compilation aucune erreur ne se manifeste, c'est lorsque j'ouvre la page en question que l'appli s'arrête.
Bizarre lorsque je recule d'une page l'appli continue de fonctionner concernant les autres commandes.
a +++
rapidegoyes
J'ai changer une ligne dont voici l'extrait:
return db.rawQuery("SELECT ID as _id, * FROM book_table " + dater.toString(), null);
Lors de la compilation aucune erreur ne se manifeste, c'est lorsque j'ouvre la page en question que l'appli s'arrête.
Bizarre lorsque je recule d'une page l'appli continue de fonctionner concernant les autres commandes.
a +++
rapidegoyes
jordane45
Messages postés
38459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 avril 2025
4 740
29 nov. 2020 à 22:24
29 nov. 2020 à 22:24
Bonjour
A mon avis
A mon avis
SELECT ID as _id, book_table.* FROM book_table "
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
30 nov. 2020 à 20:36
30 nov. 2020 à 20:36
Bonsoir ,
Merci de me répondre
Ce que tu me proposes ne marche pas
Voila mon code que j'ai déjà essayé, il fonctionne mais je n'arrive pas à insérer ma variable
initialisée avec la date système du jour.
ci-dessous mon code
Avec cela je réussis à afficher toutes mes données, ce que je cherche c'est simplement d'afficher une ligne avec la date actuelle du jour.
Pour réussir il faudrait que je puisse insérer ma variable date dans cette requête, malheureusement je n'y parvient pas.
Si tu as une autre idée je suis preneur.
a +++ cordialement
rapidegoyes
Merci de me répondre
Ce que tu me proposes ne marche pas
Voila mon code que j'ai déjà essayé, il fonctionne mais je n'arrive pas à insérer ma variable
initialisée avec la date système du jour.
ci-dessous mon code
return db.rawQuery("SELECT ID as _id, * FROM book_table " , null);
Avec cela je réussis à afficher toutes mes données, ce que je cherche c'est simplement d'afficher une ligne avec la date actuelle du jour.
Pour réussir il faudrait que je puisse insérer ma variable date dans cette requête, malheureusement je n'y parvient pas.
Si tu as une autre idée je suis preneur.
a +++ cordialement
rapidegoyes
jordane45
Messages postés
38459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 avril 2025
4 740
30 nov. 2020 à 20:41
30 nov. 2020 à 20:41
Oh purée.... j'avais mal lu ta requête...
Donc tu voudrais "filtrer" sur cette variable ?
Tu as oublié de mettre un WHERE dans ta requête.
Donc tu voudrais "filtrer" sur cette variable ?
Tu as oublié de mettre un WHERE dans ta requête.
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
Modifié le 30 nov. 2020 à 22:47
Modifié le 30 nov. 2020 à 22:47
Bonsoir,
Effectivement mon objectif c'est de filtrer les données avec cette date "now"
Si, j'avais déjà ajouter WHERE avec plusieurs essais.
Mais hélas rien ne fonctionne, ce qui est bizarre à la compilation aucune erreur, comme dit plus haut , lorsque je veux afficher cette activité l'appli s'arrête.
Aucun message d'erreur nulle part !!!
Elle s'arrête uniquement pour l'activité en question et je peux continuer sur les autre vues sans problème.
Voici mon essai
Cela fait maintenant au moins 12 heures que je cherche avec essais dans tous les sens mais rien !!!
Maintenant attention si je mets une date là ça y est le trie ce fait et les lignes comportant cette date apparaissent.
exemple du code d'essai:
Donc j'ai un problème pour insérer la variable pourtant elle existe et elle est bien initialisée !
A l'aide merci
cordialement rapidegoyes ou rapidegoNO !!!
Effectivement mon objectif c'est de filtrer les données avec cette date "now"
Si, j'avais déjà ajouter WHERE avec plusieurs essais.
Mais hélas rien ne fonctionne, ce qui est bizarre à la compilation aucune erreur, comme dit plus haut , lorsque je veux afficher cette activité l'appli s'arrête.
Aucun message d'erreur nulle part !!!
Elle s'arrête uniquement pour l'activité en question et je peux continuer sur les autre vues sans problème.
Voici mon essai
return db.rawQuery("SELECT ID as _id, * FROM book_table WHERE DATE = mavariable" , null);
Cela fait maintenant au moins 12 heures que je cherche avec essais dans tous les sens mais rien !!!
Maintenant attention si je mets une date là ça y est le trie ce fait et les lignes comportant cette date apparaissent.
exemple du code d'essai:
return db.rawQuery("SELECT ID as _id, * FROM book_table WHERE DATE = '2020-12-04'" , null);
Donc j'ai un problème pour insérer la variable pourtant elle existe et elle est bien initialisée !
A l'aide merci
cordialement rapidegoyes ou rapidegoNO !!!
jordane45
Messages postés
38459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 avril 2025
4 740
>
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
30 nov. 2020 à 22:51
30 nov. 2020 à 22:51
mavariable doit se trouver entre quotes
rapidegoyes
>
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
30 nov. 2020 à 23:51
30 nov. 2020 à 23:51
J'ai essayé si je place la variable entre quotes ça ne plante plus mais je n'ai pas d'affichage le trie est null
a plus rapidegoyes
a plus rapidegoyes
jordane45
Messages postés
38459
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 avril 2025
4 740
>
rapidegoyes
30 nov. 2020 à 23:53
30 nov. 2020 à 23:53
Entre quotes... mais également en la concaténant avec le reste de la chaine...
Un truc du style
Un truc du style
return db.rawQuery("SELECT ID as _id, * FROM book_table WHERE DATE = '"+ mavariable +"'" , null);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
Modifié le 2 déc. 2020 à 22:37
Modifié le 2 déc. 2020 à 22:37
Bonsoir,
J'ai essayé ci-dessus mais rien à faire j'ai du rouge partout.
Je m’explique:
Je cherche à faire un trie des produits par dates.
Avec la méthode suivante en utilisant la même variable il m'est possible de modifier des dates
ci-dessous.
Maintenant mon problème:
Avec la méthode suivante en utilisant la même variable il m'est impossible de trier les dates.
Aucune erreurs, l'activité s'affiche mais vide .
J'en déduis que ma variable n'est pas prise en compte !
ci-dessous:
Un autre essai avec une date entre guillemets, là le trie se fait et les données s'affichent !
ci-dessous:
Mais mon objectif est d'avoir le trie sur la date du jour automatiquement.
En espérant avoir bien explicité mon problème.
Merci d'être à mon écoute
cordialement à +++
rapidegoyes
J'ai essayé ci-dessus mais rien à faire j'ai du rouge partout.
Je m’explique:
Je cherche à faire un trie des produits par dates.
Avec la méthode suivante en utilisant la même variable il m'est possible de modifier des dates
ci-dessous.
public void daterep(long id){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues dater = new ContentValues();
dater.put("DATE", varDateReport); //appel de la variable varChange pour obtenir sa valeur
db.update("book_table", dater, "id = ? ", new String[]{Integer.toString((int) id)});//par click sur une ligne
db.close();//ferme la BDD
}
Maintenant mon problème:
Avec la méthode suivante en utilisant la même variable il m'est impossible de trier les dates.
Aucune erreurs, l'activité s'affiche mais vide .
J'en déduis que ma variable n'est pas prise en compte !
ci-dessous:
public Cursor selecte_Dates(){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues dater = new ContentValues();
dater.put("DATE", varDateReport);//appel de la variable varDateReport pour obtenir sa valeur
return db.rawQuery("SELECT ID as _id, * FROM book_table WHERE DATE = \"" + dater + "\"", null);
}
Un autre essai avec une date entre guillemets, là le trie se fait et les données s'affichent !
ci-dessous:
return db.rawQuery("SELECT ID as _id, * FROM book_table WHERE DATE = '2020-12-02' " , null);
Mais mon objectif est d'avoir le trie sur la date du jour automatiquement.
En espérant avoir bien explicité mon problème.
Merci d'être à mon écoute
cordialement à +++
rapidegoyes
BunoCS
Messages postés
15909
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
31 mars 2025
3 914
3 déc. 2020 à 09:02
3 déc. 2020 à 09:02
Ah mon avis, ce n'est pas la variable qui coince, mais la méthode. Dans le 1er cas, tu utilises bien le param selection, mais pas dans le 2nd. Si j'essaie de transposer ta requête avec la méthode query(), ça donne un truc comme ça :
L'avantage de faire comme ceci est de ne pas s'occuper de l'échappement des caractères dans la requête SQL, c'est le système qui gère
// Paramètres de la requête String tableName = "TA_TABLE"; // le nom de ta table String columns = null; // 'null' pour récupérer toutes les colonnes, sinon, il faut new String[] {"column1", "column2"}; String selection = "DATE = ?"; // la clause WHERE String[] args = new String[]{ varDateReport }; // les paramètres de la clause WHERE, une String par point d'interrogation au-dessus String orderBy = "DATE DESC"; // le tri est fait directement dans la requête // Requête Cursor c = db.query(tableName, columns, selection, args, null, null, orderBy);
L'avantage de faire comme ceci est de ne pas s'occuper de l'échappement des caractères dans la requête SQL, c'est le système qui gère
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
Modifié le 3 déc. 2020 à 23:08
Modifié le 3 déc. 2020 à 23:08
Bonsoir,
Merci pour ton retour; j'ai appliqué ton code.
Cette fois ci je n'ai plus d'erreur, nulle part.
Mais lorsque je lance l'activité en question mon appli se bloque avec affichage "Gest congel" s'est arrêté.
Voici la requête que j'ai rédigé:
Ai-je fait une erreur en recopiant ?
Voici toute la méthode:
Encore merci
A+++ cordialement
rapidegoyes
yes or no ?
Merci pour ton retour; j'ai appliqué ton code.
Cette fois ci je n'ai plus d'erreur, nulle part.
Mais lorsque je lance l'activité en question mon appli se bloque avec affichage "Gest congel" s'est arrêté.
Voici la requête que j'ai rédigé:
Cursor c = db.query("book_table", null,"DATE = ?", new String[]{varDateReport}, null, null, "DATE DESC");
return c;
Ai-je fait une erreur en recopiant ?
Voici toute la méthode:
public Cursor selecte_Dates(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor c = db.query("book_table", null,"DATE = ?", new String[]{varDateReport}, null, null, "DATE DESC");
return c;
}
Encore merci
A+++ cordialement
rapidegoyes
yes or no ?
BunoCS
Messages postés
15909
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
31 mars 2025
3 914
Modifié le 4 déc. 2020 à 08:52
Modifié le 4 déc. 2020 à 08:52
Mais lorsque je lance l'activité en question mon appli se bloque avec affichage "Gest congel" s'est arrêté.Dans ce genre de cas, il faut regarder les logs pour voir où cela crash...
Est-ce que
varDateReportest de type String ? Sinon, ça risque de planter ici
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7
>
BunoCS
Messages postés
15909
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
31 mars 2025
Modifié le 4 déc. 2020 à 18:42
Modifié le 4 déc. 2020 à 18:42
Bonsoir,
J'ai vraiment tout vérifié, aucune erreur nulle part ni dans les logs pour signaler le crash .
Ma variable est déclarée de type String ci-dessous:
Et voici l'ensemble du fichier dates_Diverses.java
J'essaye de comprendre
Est-ce le format de date qui peut poser un problème ?
j'ai déclaré yyyy-MM-dd
Ou est-ce celà: String formatteDate = df.format(c.getTime());
Avec mes remerciements
cordialement
rapidegoyes
J'ai vraiment tout vérifié, aucune erreur nulle part ni dans les logs pour signaler le crash .
Ma variable est déclarée de type String ci-dessous:
//déclaration variable de classe pour reporter dates
public static String varDateReport ;
Et voici l'ensemble du fichier dates_Diverses.java
package com.example.sqlitedatabase;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class dates_Diverses extends Activity implements AdapterView.OnItemLongClickListener {
SQLiteDataBaseHelper db; // déclaration de l'objet db
//déclaration de l'objet TextView
static TextView txtView;
//déclaration variable de classe pour reporter dates
public static String varDateReport ;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dates_limites_diverses);
db = new SQLiteDataBaseHelper(this);
final ListView lv = this.findViewById(R.id.Fiche_liste);
txtView = findViewById(R.id.txtView);
//*************mise en page du toast********************
Context context = getApplicationContext();
CharSequence text = " Vérifier vos dates de fin de congélation ";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 40, 800);
toast.show();
lv.setOnItemLongClickListener(this);//permet la modification par click sur ligne
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String formatteDate = df.format(c.getTime());
// formattedDate have current date
// Toast.makeText((this), formatteDate,Toast.LENGTH_LONG).show();
// maintenant on affiche formattedDate value dans TextView
txtView.setText(" Date courante du jour :" + formatteDate);
txtView.setTextSize(20);
varDateReport = formatteDate; //initialisation de la variable
Cursor data = db.selecte_Dates();
// création de l'objet SimpleCursorAdapter...
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.row_item, data, new String[]
{"TYPE", "NOM", "DATE", "NOMBRE", "ENDROIT"}, new int[]{R.id.textViewCol1, R.id.textViewCol2,
R.id.textViewCol3, R.id.textViewCol4, R.id.textViewCol5});
lv.setAdapter(adapter);
} // fin de onCreate
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, final long id) {
final AlertDialog.Builder modifAlert = new AlertDialog.Builder(this);
modifAlert.setTitle("Vous pouvez modifier la date");
modifAlert.setMessage("Date du jour !" );
modifAlert.setPositiveButton("Date", null);
modifAlert.setNegativeButton("Annuler", null);
modifAlert.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
db.daterep(id);
Toast.makeText(getApplicationContext(), "OK la date est modifié", Toast.LENGTH_SHORT).show();
}
});
modifAlert.create().show();
return false;
}
}
J'essaye de comprendre
Est-ce le format de date qui peut poser un problème ?
j'ai déclaré yyyy-MM-dd
Ou est-ce celà: String formatteDate = df.format(c.getTime());
Avec mes remerciements
cordialement
rapidegoyes
BunoCS
Messages postés
15909
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
31 mars 2025
3 914
>
rapidegoyes
Messages postés
121
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
28 mars 2025
7 déc. 2020 à 13:59
7 déc. 2020 à 13:59
J'ai vraiment tout vérifié, aucune erreur nulle part ni dans les logs pour signaler le crash .Tu as forcément un crash...Essaie d'exécuter en mode debug pas-à-pas avec des points d'arrêt