IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

MySQLdb cursor.close() n'a aucun effet?


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Points : 14
    Points
    14
    Par défaut MySQLdb cursor.close() n'a aucun effet?
    Bonjour à tous,

    J'ai un problème très étrange. Je repete toutes les X secondes la même requete SQL et celle ci me retourne toujours le même résultat. Hors la base de données est modifié entre temps.

    Par contre si je réouvre la connexion mysql à chaque fois, cela marche...

    Quelqu'un aurait une idée?

    Ma classe DB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class IMDb:
    	def __init__(self, logger):
    		self.isDbOk		= True;
    		...
     
    	def openDb(self):	
    		try:
    			self.db 		= MySQLdb.connect(host=self.db_host,user=self.db_user,passwd=self.db_password,db=self.db_database);
    			self.isDbOk		= True;
    		except Exception:
    			self.logger.error("Connection to db fail. Check your configuration file.");
    			self.isDbOk		= False;
     
    	def query(self, sql):
    		if self.isDbOk:
    			cursor = self.db.cursor();
    			cursor.execute(sql);
    		else:
    			self.openDb();
    			cursor = self.db.cursor();
    			cursor.execute(sql)
    		return cursor;
    Je l'utilise ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    sQuery = "SELECT toto FROM toto";
    cu = self.db.query(sQuery); #self.db est une instance de IMDb
     
    for item in cu.fetchall():
    	...
     
    # close cursor
    cu.close();
    Avec ce code ca ne marche pas. Le résultat retourné est tout le temps le même alors que les données de la table ont été modifiées entre temps.
    Par contre si je fait un self.openDb(); à chaque appel de query(), la ça marche, la requête ne me retourne des données différentes.

    edit: j'utilise de l'innodb.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour ,
    quand tu fais des changements (insertion ,modif...) dans tes tables est ce que tu utilises ta fonction query(self, sql) ,si oui il faut peut etre faire un cursor.commit() pour valider le changement
    sinon je te souhaite quand même une bonne journée

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci effectivement grace au commit ça passe. Ce qui est étrange c'est que je n'éffectue que des SELECT, c'est pour ça que je ne l'utilisais pas.

    Avec le commit() c'est reglé!

    Merci, je passe le topic en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boutons et sliders n'ont aucun effet :(
    Par ®om dans le forum JSF
    Réponses: 2
    Dernier message: 17/04/2008, 09h56
  2. Réponses: 0
    Dernier message: 16/03/2008, 18h38
  3. ON DELETE RESTRICT -> Aucun effet
    Par irongomme dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/10/2007, 17h32
  4. Color et ParentColor : aucun effet
    Par molini_a dans le forum Composants VCL
    Réponses: 6
    Dernier message: 12/09/2007, 11h54
  5. Requête SQL aucun effet sur la base ?
    Par vain_mich dans le forum Hibernate
    Réponses: 5
    Dernier message: 25/05/2007, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo