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

VB 6 et antérieur Discussion :

VB et MySQL - Modification d'un enregistrement


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut VB et MySQL - Modification d'un enregistrement
    Bonjour,
    J'ai besoin de modifier une application écrite en VB5 utilisant Access via DAO pour qu'elle attaque désormais une base MySQL 5.0 (La base Access a été migrée vers MySQL) . J'utilise donc un pilote ODBC (3.51.21). Cela se passe sans problème en lecture. Par contre en modification si je tente modifier deux fois de suite le même enregistrement, cela provoque l'erreur 3197:
    "Le moteur de base de données Microsoft Jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps."

    Par exemple ce code provoque l'erreur:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Dim MyWorkSpace as WorkSpace    
        Dim sConnect As String
        Dim Mdb As Database
        Dim t as recordset    
     
        Set MyWorkSpace = CreateWorkspace("", "Admin", "")
     
        DSN$ = "MaBase"
     
        sConnect = "ODBC;DSN=" & DSN$ & ";"
        sConnect = sConnect & "UID=root;"
        sConnect = sConnect & "PWD=PSW;"
        sConnect = sConnect & "Database=MaBase;"
     
        Set Mdb= MyWorkSpace.OpenDatabase("", False, False, sConnect)
     
        r$ = "SELECT * FROM Table WHERE Code = 12;"
        Set t = Mdb.OpenRecordset(r$, dbOpenDynaset)
        If Not t.EOF Then
           t.Edit
               t!Libelle = "Test"
           t.Update
        endif
        t.Close
     
        Set t = Mdb.OpenRecordset(r$, dbOpenDynaset)
        If Not t.EOF Then
           t.Edit
               t!Libelle = "Nouveau Test"
           t.Update
        endif
        t.Close
     
        Mdb.close
    Le problème est identique si je veux modifier deux enregistrements différents au sein du même recordset!
    Quelqu'un peut-il m'expliquer pourquoi cela passe avec Access et pas avec MySQL, bien que le recordset soit fermé entre les deux passages, et surtout comment faire pour me sortir de là. C'est la première fois que j'utilise MySQL.
    Mes délais pour migrer l'application sont très courts, c'est donc très urgent.
    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Hmm, déjà Jet + MYSQL ça ne m'inspire pas confiance ...

    Je serais toi j'essaierais un autre moyen de te connecter à ta base, tu as un tuto à ce sujet sur dvp (si je le retrouve j'édite et jle colle ici)

    Y'en a pas pour longtemps à le mettre en place et à mon avis c'est plus safe (intuition, donc complètement gratuit )

    edit : et ben voila http://rp.developpez.com/vb/tutoriels/mysql/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    +1

    Passe au moins par ADO (perso, je ne trouve pas la méthode via API très intuitive, surtout venant de DAO, mais c'est peut-être juste une question d'habitude )

    http://dev.mysql.com/doc/refman/5.0/...rs-addnew.html

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup. Je vais chercher dans ce sens. Je pense qu'effectivement DAO ne doit pas convenir. Pour info, on a la même erreur en attachant sous Access une table MySQL et en modifiant les datas depuis Access. Si on fait la même opération avec une base SQL Server, il n'y a pas de problème! Le soucis viens, je pense, du type de verrouillage de MySQL (innodb) qui ne doit pas être compatible avec les notions de snapshot et dynaset. Je vous tiendrai au courant de la suite.
    Merci

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    j'ai migré de VB5 à VB6 et utilisé une connexion ADO. Tout ce qui est migré fonctionne très bien, et les temps de réponses sont divisés par 5 environ, par rapport à mes premiers essais en DAO (la base de donnée est sur un serveur distant accédé en VPN).
    Merci encore

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

Discussions similaires

  1. date de modification d'un enregistrement
    Par xycoco dans le forum Access
    Réponses: 3
    Dernier message: 15/11/2005, 21h47
  2. [Conception][performance] mysql table de 10000 enregistrements / hashmap
    Par debdev dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/07/2005, 11h29
  3. [IBquery]modification manuelle d'enregistrement
    Par dudux dans le forum Bases de données
    Réponses: 5
    Dernier message: 27/06/2005, 20h53
  4. TDBlookupcombo et modification d'un enregistrement existant
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/04/2005, 12h11
  5. Gestion des modifications pour un enregistrement
    Par Pascal Jankowski dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 14h09

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