recursive cursor error sqlite3 python

Le problème exposé dans ce sujet a été résolu.

Bonjour chers amis,je développe une application qui a trois classes. Une classe interface qui communique avec une base de données et une classe chargement qui communique avec la même BD et la classe 3 est la classe qui permet la connexion des deux classes précédentes a la BD.

Je reçois souvent cette erreur recursive cursor error après les recherches j’ai vu que cette erreur est du au faite que les deux classes(interface et chargement) accedent au même curseur.

Pour régler ce problème j’ai décidé de créer deux curseurs l’un pour l’interface et l’autre pour le chargement.

Ce qui me donne le code suivant:

class Requete:
    def __init__(self, nomBaseDeDonnee, type):
        self.nomBaseDeDonnee = nomBaseDeDonnee
        self.baseDeDonnees = sqlite3.connect(nomBaseDeDonnee, check_same_thread=False)
        if type == 0:
           self.cursor1 = self.baseDeDonnees.cursor()
        else:
           self.cursor2 = self.baseDeDonnees.cursor()

Est il une bonne idée? Sinon comment pourrais je procéder pour éviter ce problème?

Merci pour vos differentes reponses? :D

+0 -0

Salut,

Si l’erreur est « recursive cursor error », c’est plutôt lié à un environnement multithread, non ? Les curseurs ne sont en effet pas partageables entre différents threads.

À quoi ressemble l’architecture de ton application à ce niveau ? Moi je ferais simplement en sorte d’avoir une connexion par thread. Voire de n’y accéder que dans un, suivant ce que tu fais avec ta DB.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte