9
votes

Mise en œuvre de la base de données Python

J'essaie de mettre en place un programme de base de données simple à Python. Je passe au point où j'ai ajouté des éléments à la base de données, modifiées les valeurs, etc. xxx p> maintenant, comme prochaine étape, je souhaite pouvoir faire des transactions imbriquées dans ce code Python .Je commencer une série de commandes avec la commande BEGIN puis les commettras avec cOMMIT. Un commit devrait valider toutes les transactions qui ont commencé. Cependant, une restauration doit revenir sur les modifications au début récent. Je ne suis pas capable de trouver une solution appropriée pour cela.


0 commentaires

3 Réponses :


7
votes

Une approche simple consiste à conserver une liste "transaction" contenant toutes les informations dont vous avez besoin pour pouvoir rouler des modifications en attente:

def dbset(self, name, value):
    self.transaction.append((name, self.database.get(name)))
    self.database[name]=value

def rollback(self):
    # undo all changes
    while self.transaction:
        name, old_value = self.transaction.pop()
        self.database[name] = old_value

def commit(self):
    # everything went fine, drop undo information
    self.transaction = []


1 commentaires

C'était exactement ce que je cherchais. Merci beaucoup pour la réponse.



0
votes

Ceci est tout disponible gratuitement dans le module SQLLITE . Les commits et les retournements de SQLLITE sont discutés plus en détail que je ne peux comprendre ici


0 commentaires