IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

CursorLoader, CursorTreeAdapter, ExpendableListView, SQLite et tables relationnelles


Sujet :

Android

  1. #1
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut CursorLoader, CursorTreeAdapter, ExpendableListView, SQLite et tables relationnelles
    Bonjour,

    Je souhaite afficher des données provenant d'une bdd SQLite dans une ExpendableListView moyennant un CursorTreeAdapter.

    Voici la partie de la bdd qui nous intéresse :
    Nom : database.png
Affichages : 169
Taille : 29,1 Ko

    J'arrive pour le moment à afficher ma liste en regroupant mes entrées de la table T_UNIQUE par ACT.

    Le problème qu'il se pose maintenant concerne la table T_LOCATION. En effet, chaque entrée de la table T_UNIQUE peut être mise en relation avec 0 à n entrées de la table T_LOCATION. Et je souhaite dans ma liste faire apparaître pour chaque élément les entrées de T_LOCATION correspondantes (sous forme d'une chaîne de caractère qui concatène les entrées de T_LOCATION correspondantes à l'élément).

    Dans la méthode bindChildView, je pourrai faire un appel SQL pour récupérer les entrées voulues pour la ligne en cours, mais dans ce cas, la requête ne se fera pas de manière asynchrone.

    Dois-je transformer mon curseur pour y intégrer une colonne supplémentaire comprenant cette chaîne de caractère via du code SQL ? Ou y a-t-il une astuce pour traiter ce genre de cas ?



    Merci !
    Un clavier Azerty en vaut deux.

  2. #2
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Après quelques recherches, voilà la solution mise en place :

    Plutôt que de vouloir faire une nouvelle requête pour chaque entrée de T_UNIQUE, j'ai complété la requête pour récupérer les éléments de T_LOCATIONS associé à chaque T_UNIQUE et concaténé comme je souhaite l'afficher.

    Voilà le code si ça peut servir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT U._id, U.NAME, U.ACT, U.BOUNTY, U.CHECKED, group_concat(L.NAME, ", ") AS LOCATIONS 
    FROM T_LOCATION L 
       INNER JOIN T_REL_UNIQUE_LOCATION R 
           ON L._id = R.T_LOCATION__id 
       INNER JOIN T_UNIQUE U
           ON U._id = R.T_UNIQUE__id
    WHERE U.ACT = 1
    GROUP BY U.NAME;
    Un clavier Azerty en vaut deux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] [SQLite] create table et insert impossible sous linux (ok sous windows)
    Par rebolon dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 31/07/2007, 15h59
  2. Réponses: 6
    Dernier message: 19/05/2007, 13h34
  3. retrouvé le schema d'une table relationnel
    Par gaussprodada dans le forum Administration
    Réponses: 1
    Dernier message: 23/01/2007, 10h41
  4. [Hibernate] Hibernate DB de 200 Table relationnelle
    Par servlet1 dans le forum Hibernate
    Réponses: 3
    Dernier message: 11/03/2006, 18h27
  5. Insertion dans une table relationnelle
    Par etiennegaloup dans le forum Langage SQL
    Réponses: 22
    Dernier message: 01/11/2005, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo