aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/idbobjectstore/get/index.html
blob: b0f3cf48ce83a49d00df207370d8d6a5991027de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
title: IDBObjectStore.get()
slug: Web/API/IDBObjectStore/get
translation_of: Web/API/IDBObjectStore/get
---
<p>{{ APIRef("IndexedDB") }}</p>

<div>
<p>La méthode <strong><code>get()</code></strong> de l'interface {{domxref("IDBObjectStore")}} fait une {{domxref("IDBRequest","requête")}} pour renvoyer la valeur d'un enregistrement du magasin d'objet {{domxref("IDBObjectStore","relié")}}.</p>
</div>

<p>{{Note("Si plusieurs enregistrements peuvent être sélectionnés la valeur du premier enregistrement rencontré (dont la valeur n'est pas <code>undefined</code>) 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 (<code>undefined</code>) 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 = <code>undefined</code>).")}}</p>

<p>{{AvailableInWorkers}}</p>

<h2 id="Syntaxe">Syntaxe</h2>

<pre class="brush: js">var request = objectStore.get(cle);</pre>

<h2 id="Paramètre">Paramètre</h2>

<dl>
 <dt><code>cle</code></dt>
 <dd>la clé ou l'{{domxref("IDBKeyRange","intervalle de clé")}} de l'enregistrement dont on cherche la valeur.</dd>
</dl>

<h2 id="Renvoie">Renvoie</h2>

<dl>
 <dt>Une {{domxref("IDBRequest","requête")}}</dt>
 <dd>La propriété {{domxref("IDBRequest.result","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é.</dd>
</dl>

<h2 id="Exceptions">Exceptions</h2>

<dl>
 <dt><code>TransactionInactiveError</code></dt>
 <dd>Cette {{domxref("DOMException","exception")}} est levé si la {{domxref("IDBTransaction","transaction")}} dont dépend cet {{domxref("IDBObjectStore","accès")}} au magasin d'objet est inactive.</dd>
 <dt><code>DataError</code></dt>
 <dd>Cette {{domxref("DOMException","exception")}} est levé si la clé ou l'{{domxref("IDBKeyRange","intervalle de clé")}} est invalide.</dd>
 <dt><code>InvalidStateError</code></dt>
 <dd>Cette {{domxref("DOMException","exception")}} est levé si le magasin d'objet à été supprimé.</dd>
</dl>

<h2 id="Exemple">Exemple</h2>

<p>Dans le code suivant , on ouvre une {{domxref("IDBTransaction","transaction")}} sur la {{domxref("IDBDatabase","connexion")}} à la base de données, pour avoir l'{{domxref("IDBObjectStore","accès")}} au magasin d'objet dans lequel on veut retrouver la valeur d'un enregistrement.</p>

<p>La méthode <strong><code>get() </code></strong>sert à retrouver la valeur de l'enregistrement dont la clé est <code><em>Walk dog</em></code> dans magasin d'objets <em><code>toDoList</code></em></p>

<pre class="brush: js">// 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 += '&lt;li&gt;Database initialised.&lt;/li&gt;';

  // 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 += '&lt;li&gt;Transaction effectuée: fin de la modification de la base de données.&lt;/li&gt;';
  };

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

  // 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 += '&lt;li&gt;Enregistrement retrouvé.&lt;/li&gt;';

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

<p class="note">Pour un exemple de travail complet, voir notre <a href="https://github.com/mdn/to-do-notifications/">To-do Notifications</a> app (<a href="http://mdn.github.io/to-do-notifications/">view example live</a>).</p>

<h2 id="Spécifications">Spécifications</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">Statut</th>
   <th scope="col">Commentaire</th>
  </tr>
  <tr>
   <td>{{SpecName('IndexedDB', '#widl-IDBObjectStore-get-IDBRequest-any-key', 'get()')}}</td>
   <td>{{Spec2('IndexedDB')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Compatibilité des navigateurs</h2>

<p>{{Compat("api.IDBObjectStore.get")}}</p>

<h2 id="See_also">Voir aussi</h2>

<ul>
 <li>{{domxref("IndexedDB_API.Using_IndexedDB","Utiliser IndexedDB")}}</li>
 <li>{{domxref("IDBDatabase","Débuter une connexion")}}</li>
 <li>{{domxref("IDBTransaction","Utilisé les transactions")}}</li>
 <li>{{domxref("IDBKeyRange","Définir l'intervalle des clés")}}</li>
 <li>{{domxref("IDBObjectStore","Accès aux magasins d'objets")}}</li>
 <li>{{domxref("IDBCursor","Utiliser les curseur")}}</li>
 <li>Exemple de référence: <a class="external" href="https://github.com/mdn/to-do-notifications/tree/gh-pages">To-do Notifications</a> (<a class="external" href="http://mdn.github.io/to-do-notifications/">view example live</a>.)</li>
</ul>