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

C++Builder Discussion :

Lire dans une base de données toutes les lignes [Base de donnée]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 10
    Par défaut Lire dans une base de données toutes les lignes
    Bonjour à tous, j'aimerai un peu d'aide pour finir un projet. je souhaiterai faire en sorte que mon application sous c++ builder puisse lire et me retranscrire toutes les lignes d'une base de données en effet lorsque j'effectue une requete mysql pour lire les tables, celui ci me lit bien celle dont les chiffres partes de 1. (mon test est: 1, 2, 3, 21) et il ne lis que 1, 2, 3.

    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
     
     
    mysql_query(connection,"SELECT Porte FROM e_s");
    resultats = mysql_store_result(connection);
    if (resultats == NULL)
    {
     TMemtest->Lines->Add("Aucun résultats.");
    }
    else
    {
    nb_ligne = mysql_num_rows(resultats);
    for (ni=0; ni<nb_ligne; ni++)
    {
    ligne = mysql_fetch_row(resultats);
     
    //organisation sur plusieurs lignes [...]
    //declaration de mes objets "dynamique"
     
    }
    mysql_free_result(resultats);
    }
    }

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Avant toute chose, quelques remarques concernant ton problème et ta façon de le formuler :
    1 - Tu n'utilises pas "une base de données", mais MySQL à laquelle tu accèdes via son API C : essaye d'être précis quand tu le peux.
    2 - Fournir les données d'une table (ou un extrait) peut aussi aider.
    3 - Merci de mieux formuler ton problème, car en l'état je ne vois pas vraiment qui pourrait t'aider ...

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    tu peux aussi boucler tant que mysql_fetch_row renvoie un pointeur différent de NULL
    C'est comme cela que je l'ai fait en Delphi, mysql_num_rows et mysql_num_fields, m'ont servi à allouer la mémoire de mes TList imbriquées

    As-tu essayé d'ajouter une valeur dans la DB, une 5eme comme 22 !
    Si cela reste 1, 2 et 3 (nb_ligne = 3), tu un étrange problème, une limite de mémoire ? dans my.ini ? un index corrompu peut provoquer cela aussi !
    Si cela passe à 1, 2, 3 et 21 (nb_ligne = 5), c'est tout simplement un problème de boucle

    J'utilisais mysql_real_query et non mysql_query pour gérer les BLOBs

    Pour parcourir les colonnes tu utilises bien mysql_field_seek et mysql_fetch_field ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 10
    Par défaut
    Merci de me répondre aussi vite. Ma base de données contient 5 tables (je ne m'en sert que de deux dans le projet le reste sert a mes camarades) Mon problème est le suivant: Comment faire en sorte que C++ Builder puisse lire toutes les tables d'une base de données via mySQL même si celles-ci comportent des sauts de numéros?




    (donc e_s et historique sont les deux tables que j'utilise)

    Je ne savais pas que ces fonctions existaient et je vais les tester.
    (nous "programmons" plus en C++ en cours et touchons rarement a d'autres choses).
    J'utilisais ceci pour afficher mes fenêtres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nb_ligne=mysql_num_rows(resultats);
    for (ni=0; ni<nb_lignes; ni++)
    {
    ligne=mysql_fetch_row(resultats);
    //affichage des objets graphiques;
    }

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Citation Envoyé par Miharu Voir le message
    Comment faire en sorte que C++ Builder puisse lire toutes les tables d'une base de données via mySQL même si celles-ci comportent des sauts de numéros?
    Que veux-tu dire par saut de numéros, est-ce que tu veux dire que l'ID de ton enregistrement passe de 10 à 21, comme sur ta capture d'écran? Si c'est cela, sa n'a aucune importance. En faisant "SELECT Porte FROM e_s" tu va recevoir tout les enregistrements. Si tu les veux dans un ordres particulier utilise "ORDER BY" dans ta requête de sélection.

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Comme le dit Crayon, les sauts de numéro ne posent aucun problème, c'est même très courant avec les suppressions !

    Il te faut débugger tes boucles !
    On ne peut t'aider plus, ton code semble correct !


    HS : Mifare, Desfire... je vois très bien le sujet ... une mini gestion de contrôle d'accès
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 10
    Par défaut
    Merci de votre aide j'ai essayé en vain de corriger l'erreur mais j'ai rendu mon projet en temps et en heure mais sans pouvoir le finir

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2011, 03h18
  2. recherche dans une base de donnée toute entière
    Par mitnick2006 dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/08/2008, 11h38
  3. Suppression de toutes les tables dans une base de données
    Par GDMINFO dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2007, 08h24
  4. créer une boulce pour lire dans une base de donnéé MySQL
    Par pierrot10 dans le forum Administration
    Réponses: 1
    Dernier message: 26/07/2006, 14h21
  5. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27

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