DETECTER LES VERROUS SUR DES TABLES D UNE BASE MYSQL

winvsmac Messages postés 84 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 14 décembre 2016 - 18 juil. 2013 à 18:58
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 7 août 2013 à 22:09
Bonjour,

Je me permets de poster cette question car je n'arrive pas à trouver ce que je veux.

Je suis en train de développer une application VB6 pilotant une base MYSQL.

Dans un écran de paramétrage, je pose un verrou sur la table pour être certain que personne d'autre ne puisse insérer/modifier les données de la table.

Jusque là pas de problème. Quand je me connecte à la console SQL, via la commande "SHOW OPEN TABLES WHERE IN_USE >0;" je constate bien que ma table est lockée.

Cependant, je souhaiterai via un code VB6 effectuer la même chose. J'ai tenté cela :

    BDDcmd.ActiveConnection = BDDcon
    BDDcmd.CommandType = adCmdText
    BDDcmd.CommandText = "SHOW OPEN TABLES WHERE IN_USE >1 ;"
    Set rst = BDDcmd.Execute


Quand je l'exécute, je n'ai aucun message d'erreur, ce qui laisse à supposer que le code est correct.

J'aimerai pouvoir faire en VB6 la commande SHOW OPEN TABLES WHERE IN_USE >1, et savoir par exemple, si la table TOTO est verrouillée.

Merci pour vos pistes de réflexion.

Le pilotage d'une base MYSQL avec VB6 est nouveau pour moi, merci d'être indulgent ...

Jérome

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
18 juil. 2013 à 19:35
Bonjour,

Si tu utilises ADO ou DAO, essayes d'ouvrir un recordset avec ta requête.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
7 août 2013 à 22:09
Bonjour,

Comme le dit NHenry, ouvrir un recordset est la chose à faire. La façon la plus simple (et toujours fonctionnelle, que ça soit en Access, MSSQL ou MySQL) c'est quelque chose comme ça :

Dim rst As Recordset
Set rst = BDDcmd.Execute("SHOW OPEN TABLES WHERE IN_USE >1;")
'[Manipulations en tout genre]
rst.Close : Set rst = Nothing 'destruction de l'objet



(Wow, la coloration syntaxique c'est vraiment devenu du n'importe quoi.)
0
Rejoignez-nous