Aller au contenu

Problème de requête (résultats ne correspondant pas)


Recommended Posts

Bonjour à tous et toutes, j'ai un petit problème dans l'accès de mes données.

Voici le contexte:

J'ai une base de donnée crée de la sorte:

//Time
   private static final String TABLE_TIME="table_time";
   private static final String TIME_ID="time_id";
   private static final String TIME_REF_PROFILE="ref_profile";
   private static final String TIME_DAY="day";
   private static final String TIME_TIME="time";
   private static final String TIME_SEARCH_KEY="search_key";
   //line to create the database:
   private static final String TIME_QRY_CREATE="create table "
       + TABLE_TIME + " (" + TIME_ID + " integer primary key autoincrement, "
       + TIME_REF_PROFILE + " integer, " + TIME_DAY + " integer, " + TIME_TIME +" integer, "
       + TIME_SEARCH_KEY + " integer);";

Voici la requête qui ne me donne pas le résultat escompté:

public MTime getNextMTime(MTime mtime)
   {
       Cursor c = m_db.query(TABLE_TIME, new String []{TIME_ID, TIME_REF_PROFILE,TIME_DAY,TIME_TIME,TIME_SEARCH_KEY},TIME_REF_PROFILE + " = " + mtime.getRefProfile() + " AND "+ TIME_SEARCH_KEY + " > " + mtime.getSearchKey(), null, null, null, TIME_SEARCH_KEY);
       MTime mtime2;
       Log.d("Sleepytux", ">>>count: "+c.getCount());
       if (c.getCount()>0)
       {    
           c.moveToFirst();
           mtime2= new MTime (c.getInt(TIME_ID_NB),c.getInt(TIME_REF_PROFILE_NB),c.getInt(TIME_DAY_NB),c.getInt(TIME_TIME_NB));

       }
       else
           mtime2=null;
       c.close();
       return mtime2;
   }

En fait, si la sélection par "TIME_REF_PROFILE + " = " + mtime.getRefProfile()" marche bien,

cette partie là:

"TIME_SEARCH_KEY + " > " + mtime.getSearchKey()"

Me renvoie des choses absurdes.

J'ai vérifié le TIME_searchkey que je passe en paramêtre, c'est une composante construite de la sorte:

///help: there is 86400000ms in one day so searchtime is: day *100000000 + time in ms

Qui me sort normalement à faire des recherche et donc le premier chiffre est le jour.

Donc vous l'aurez compris, si je fais ma recherche à partir de mercredi je ne dois retrouver que ce qui correspond à mercredi/jeudi/vendredi/samedi

Sauf que là il arrive à me sortir un résultat absurde de (je prends des exemples faux mais qui montre le principe)

30000> 60000

Je suis censé rajoute des ' ' autour de mes chiffres ou il y a un autre problème que ça?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...