IDBTransaction.db
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
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbtransaction-db① |
Compatibilité des navigateurs
BCD tables only load in the browser
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).