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

Outils MySQL Discussion :

Mode transactionnel MySQL


Sujet :

Outils MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut Mode transactionnel MySQL
    Bonjour,

    Souhaitant expérimenter cette possibilité qui s'avère indispensable pour un cas précis, sauriez-vous me dire si avec MySQL 4.0.17 il est possible de faire du mode transactionnel avec une connexion ODBC Direct.
    Mes essais restent vains avec une perpetuelle erreur 3146 (ODBC) ou bien une non exécution du COMMIT (sans erreur cette fois).

    Voici le bout de code concerné (ici en VB6 ou VBA)
    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
     
    Sub TestTransaction(ByRef SQLExecute() As String)
      On Error GoTo TestTransaction_Error
     
      MySQLDB.Execute "SET AUTOCOMMIT=0;"
      MySQLDB.Execute "SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;"
      MySQLDB.Execute "START TRANSACTION;"
      For I = 0 To UBound(SQLExecute())
         MySQLDB.Execute SQLExecute(I)
         DoEvents
      Next
      MySQLDB.Execute "COMMIT;"
     
      On Error GoTo 0
    TestTransaction_Exit:
      Exit Sub
     
    TestTransaction_Error:
      MsgBox Err.Description, 16, Err.Number
      Resume TestTransaction_Exit
    End Sub
    En tentant la même expérience dans phpMyAdmin 2.6.0-pl2, je n'ai pas plus de succès... Merci pour ceux d'entre-vous qui auriez testé ce cas.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Pour pouvoir faire des transactions sous MySQL, il faut que le moteur des tables soit InnoDB. Il est activé dans MySQL depuis la version 4.0, donc ça devrait aller.
    Maintenant, ce qui est fort probable, c'est que tes tables soient en MyIsam, et ne permettent donc pas de faire des transactions.
    Si tu as la main sur la base et que tu souhaites les convertir, voilà le lien vers la FAQ qui explique comment faire.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Oui, c'est vrai... le coup du myIsam.


    Merci ced.
    Je te tiens au courant...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    OK, ced...
    C'est la solution.
    Ce qui est paradoxal autant que suprenant, c'est que si tu demandes un script avec mode transactionnel (en cochant la case Utiliser le mode transactionnel) le script est le suivant :
    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
     
    SET AUTOCOMMIT=0;
    START TRANSACTION;
     
    CREATE TABLE `MyTable` (
    ....
    ....
      `RecordDate` datetime NOT NULL default '0000-00-00 00:00:00',
      PRIMARY KEY  (`nID`,`dtstk`),
      KEY `dtstk` (`dtstk`),
    ) TYPE=MyISAM;
     
    INSERT INTO `MyTable` VALUES (....);
    INSERT INTO `MyTable` VALUES (....);
    INSERT INTO `MyTable` VALUES (....);
     
    COMMIT;
    Donc toujours avec le MyISAM !!!

    Bref, une incompatiblité d'humeur

    Merci encore.
    ++

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

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

Discussions similaires

  1. Spring et MQ en mode transactionnel
    Par ghiwani80 dans le forum Frameworks Web
    Réponses: 0
    Dernier message: 16/08/2012, 14h11
  2. [EJB MDB] Utilisation de JMS/MDB en mode transactionnel
    Par ammah dans le forum Java EE
    Réponses: 0
    Dernier message: 04/06/2009, 15h58
  3. Mode de gestions des users en PHP/MySQL
    Par MV1908 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/05/2006, 23h25
  4. Appels au mode transactionnel dans un bean.
    Par nikalkal dans le forum Spring
    Réponses: 2
    Dernier message: 02/05/2006, 16h26
  5. pb mysql en mode batch
    Par cgu dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/04/2006, 15h45

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