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

Requêtes MySQL Discussion :

Vérifier qu'une table existe


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 248
    Points : 74
    Points
    74
    Par défaut Vérifier qu'une table existe
    Bonjour à tous !

    Alors voilà mon soucis, tout est dans le titre. J'ai cherché pendant 12 h, mais rien à faire il n'y a pas une seule solution claire sur internet à ce sujet. Pas une.
    Je code en c++ sous visual studio.

    Je cherche donc à tester si une table existe (table "type_plaque" passée en paramètre) dans ma base "plaques" afin d'éviter de faire planter le programme dans le cas ou je lui demanderais ensuite de chercher des lignes dans une table qui n'existe pas !

    Voici ce que j'ai essayé de faire :

    Code c++ : 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
     
    void square_detect::recognition (const char* type_plaque)
    {
       mysql_init(&mysql);
       mysql_options(&mysql, MYSQL_READ_DEFAULT_GROUP, "option"); //Options de connexion
       char c_show[200] = "SHOW TABLES FROM plaques LIKE ";
       char* c_show_table = strcat(c_show, type_plaque);
       bool trouve=false;
       int t_exist=0;
       // CONNEXION A LA BASE DE DONNEES (fonctionne)
       MYSQL * connexion = mysql_real_connect(&mysql,"localhost","root","","plaques",0,NULL,0);
       //Si la connexion réussie...
       if(connexion)
       {
          MYSQL_RES *result0 = NULL;			 
          MYSQL_ROW row0; 
     
         cout <<  c_show_table << "\n"; // AFFICHAGE:     SHOW TABLES FROM plaques LIKE  nom_de_ma_table_passee_en_parametres
     
         t_exist = mysql_query(&mysql, c_show_table);
     
         // NE MARCHE PAS CAR t_exist est toujours à 1 que la table existe ou pas		
         if(t_exist > 0)
         {
            trouve = true;
    	cout << "t_exist = " << t_exist << "\n";
         }
         else
         {
            trouve = false;
    	cout << "t_exist = " << t_exist << "\n";
         }
      }// if connexion
    }
    "Les ordinateurs font toujours ce qu'on leur dit, mais jamais ce qu'on veut."

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    c'est normal, il te renvoie un jeux de données... donc c'est pas null...

    une meilleure stratégie est d'exécuter ta requête et de tester si tu as une erreur en retour sinon tu lances ton traitement sur le jeu de résultats (pouvant ne contenir aucune ligne)

    un bloc try...catch est nécessaire pour savoir si une erreur s'est produite... d'après la doc de mysql vu que le connecteur génère des exceptions... donc il n'y a pas de plantage possible...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 248
    Points : 74
    Points
    74
    Par défaut
    Merci, je vais donc tenter cette solution !
    "Les ordinateurs font toujours ce qu'on leur dit, mais jamais ce qu'on veut."

Discussions similaires

  1. Vérifier si une colonne existe dans une table
    Par tamise dans le forum PL/SQL
    Réponses: 5
    Dernier message: 15/07/2013, 11h14
  2. Réponses: 2
    Dernier message: 30/04/2012, 00h25
  3. [AC-97] Comment vérifier si une table existe? (fn OpenSchema)
    Par BornToBe dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/04/2012, 09h57
  4. [Débutant] Vérifier si une table existe et si non la créer
    Par def_msy dans le forum C#
    Réponses: 0
    Dernier message: 04/08/2011, 18h07
  5. Vérifier si une modifié existe dans ma table
    Par hoangeric dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 01/07/2009, 17h37

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