IDBObjectStore.get()

Cet article nécessite une relecture technique. Voici comment vous pouvez aider.

Cet article nécessite une relecture rédactionnelle. Voici comment vous pouvez aider.

La méthode get() de l'interface IDBObjectStore fait une requête pour renvoyer la valeur d'un enregistrement du magasin d'objet relié.

Note : Si plusieurs enregistrements peuvent être sélectionnés la valeur du premier enregistrement rencontré (dont la valeur n'est pas undefined) sera renvoyée.
Note : On ne peut pas savoir s'il y a correspondance mais que l(es) enregistrement(s) a/ont des valeurs non définie (undefined) ou s'ils n'y as pas de correspondance par cette méthode. On peut utulisé la methode getAllKeys pour retrouvé la ou les clés du ou des enregistrements qui n'ont pas de valeur défini (valeur = undefined).

Note : Cette fonctionnalité est disponible via les Web Workers.

Syntaxe

var request = objectStore.get(cle);

Paramètre

cle
la clé ou l'intervalle de clé de l'enregistrement dont on cherche la valeur.

Renvoie

Une requête
La propriété result de cette requête renvoie en cas de succès,  un clone structuré de la valeur de l'enregistrement correspondant à la clé ou du premier correspondant à l'intervalle de clé.

Exceptions

TransactionInactiveError
Cette exception est levé si la transaction dont dépend cet accès au magasin d'objet est inactive.
DataError
Cette exception est levé si la clé ou l'intervalle de clé est invalide.
InvalidStateError
Cette exception est levé si le magasin d'objet à été supprimé.

Exemple

Dans le code suivant , on ouvre une transaction sur la connexion à la base de données, pour avoir l'accès au magasin d'objet dans lequel on veut retrouver la valeur d'un enregistrement.

La méthode get() sert à retrouver la valeur de l'enregistrement dont la clé est Walk dog dans magasin d'objets toDoList

// ouvre la connexion à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);

// Gère l'ouverture de la connexion
DBOpenRequest.onsuccess = function() {
  note.innerHTML += '<li>Database initialised.</li>';
    
  // enregistre la connexion dans la variable db
  db = DBOpenRequest.result;
    
  // exécute la fonction deleteData()
  deleteData();
};

function deleteData() {
  // ouvre un transaction en mode lecture/écriture pour effectuer la suppression 
  var transaction = db.transaction(["toDoList"], "readwrite");

  // affiche le succès de la transaction.
  transaction.oncomplete = function() {
    note.innerHTML += '<li>Transaction effectuée: fin de la modification de la base de données.</li>';
  };

  // affiche la cause de l’échec de la transaction.
  transaction.onerror = function() {
    note.innerHTML += '<li>Échec de la transaction: ' + transaction.error + ' la base de données n\'a pas été modifié</li>';
  };

  // ouvre un accès au magasin d'objet toDoList
  var objectStore = transaction.objectStore("toDoList");

  // Retrouve l'enregistrement dont la clé est Walk dog
   var objectStoreRequest = objectStore.get("Walk dog");

  objectStoreRequest.onsuccess = function() {
    //Affiche le succès de la requête
    note.innerHTML += '<li>Enregistrement retrouvé.</li>';

    //affecte la valeur de l'enregistrement à la variable
    var myRecord = objectStoreRequest.result;
  };
};

Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).

Spécifications

Spécification Statut Commentaire
Indexed Database API
La définition de 'get()' dans cette spécification.
Recommendation  

Compatibilité avec les navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 23webkit
24
10 moz
16.0 (16.0)
10, en partie 15 7.1
Disponible dans workers (Oui) 37.0 (37.0) ? (Oui) ?
Fonctionnalité Android Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Support basique 4.4 22.0 (22.0) 1.0.1 10 22 8
Disponible dans workers (Oui) 37.0 (37.0) (Oui) ? (Oui) ?

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : gadgino
 Dernière mise à jour par : gadgino,