La propriété db
de l'interface IDBTransaction
renvoie la connexion à la base de donnée associée à la transaction.
Note : Cette fonctionnalité est disponible via les Web Workers.
Syntaxe
var myDatabase = transaction.db;
Valeur
Une connexion à la base de données sous la forme d'un objet IDBDatabase
.
Exemples
Dans le fragment de code suivant, on ouvre une connexion à la base de donnée. Sur cette connexion on démarre une transaction en lecture/écriture pour accéder au magasin d'objet "toDoList"
et y ajouter un enregistrement. Notez également les gestionnaires d'événements oncomplete
et onerror
de la transaction qui affichent sur la page le résultat de la transaction.
À la fin, la méthode db
sert à renvoyer la connexion à la base de données associée à la transaction.
//Connexion à la base de données
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = function(event) {
note.innerHTML += 'Connexion établie.';
//Affecter la connexion à la variable db.
db = DBOpenRequest.result;
// Exécuter la fonction addData () pour emmagasiner
// les données dans la base
addData();
};
function addData() {
//Un nouvel objet prêt à être emmagasiné
newItem = [ { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: "December", year: 2013, notified: "no" } ];
// Ouvrir une transaction de lecture / écriture
// pour permettre le traitement des données sur la connexion
var transaction = db.transaction(["toDoList"], "readwrite");
// En cas de succès de l'ouverture de la transaction
transaction.oncomplete = function(event) {
note.innerHTML += '<li>Transaction complété : modification de la base de données terminée.</li>';
};
// En cas d'échec de l'ouverture de la transaction
transaction.onerror = function(event) {
note.innerHTML += '<li>Erreur transaction non ouverte, doublons interdits.</li>';
};
// Ouvrir l'accès au un magasin "toDoList" de la transaction
var objectStore = transaction.objectStore("toDoList");
// Ajouter un enregistrement
var objectStoreRequest = objectStore.add(newItem[0]);
objectStoreRequest.onsuccess = function(event) {
// Signaler l'ajout de l'enregistrement
note.innerHTML += '<li>Enregistrement ajouté.</li>';
};
// Renvoyer la connexion à la base de donnée
//associée à cette transaction.
transaction.db;
};
Note : pour un exemple fonctionnel complet, voir notre application To-do (exemple).
Spécifications
Spécification | État | Commentaires |
---|---|---|
Indexed Database API La définition de 'db' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
Nous convertissons les données de compatibilité dans un format JSON.
Ce tableau de compatibilité utilise encore l'ancien format
car nous n'avons pas encore converti les données qu'il contient.
Vous pouvez nous aider en contribuant !
Fonctionnalité | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Support simple | 23webkit 24 |
(Oui) | 10 moz 16.0 (16.0) |
10 | 15 | 7.1 |
Disponible dans les workers | (Oui) | ? | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | Android | Webview Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome pour Android |
---|---|---|---|---|---|---|---|---|---|
Support simple | 4.4 | (Oui) | (Oui) | 22.0 (22.0) | 1.0.1 | 10 | 22 | 8 | (Oui) |
Disponible dans les workers | (Oui) | (Oui) | ? | 37.0 (37.0) | (Oui) | ? | (Oui) | ? | (Oui) |
Voir aussi
- Utiliser IndexedDB
- Initier une connexion :
IDBDatabase
- Utiliser les transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer et modifier les données :
IDBObjectStore
- Utiliser les curseurs
IDBCursor
- Exemple de référence : To-do Notifications (exemple live).