Question

J'ai actuellement feuilleté les liaisons Python pour Redland et je n'ai pas trouvé de moyen propre d'effectuer des transactions sur le moteur de stockage via celui-ci. J'ai trouvé des transactions de modèle dans le module de bas niveau Redland:

import RDF, Redland

storage = RDF.Storage(...)
model = RDF.Model(storage)
Redland.librdf_model_transaction_start(model._model)
try:
    # Do something
    Redland.librdf_model_transaction_commit(model._model)
    model.sync()
except:
    Redland.librdf_model_transaction_rollback(model._model)

Cela se traduit-il également vers la couche de stockage?

Merci: -)

Était-ce utile?

La solution

Oui, cela devrait fonctionner. Il n'y a pas de fonctions pratiques pour la classe de modèle dans l'encapsuleur python actuellement, mais elles seraient similaires à ce que vous avez écrit:

class Model(object):
  ...
  def transaction_start(self):
    return Redland.librdf_model_transaction_start(self._model) 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top