Salut,

j'essaye de me connecter à distance à ma base de donnée. La connexion fonctionne, cependant le programme crash dès l'appel de la fonction mysql_use_result(&mysql) à la ligne 48 (j'ai vérifié avec le debugger etc.. donc c'est sûr que c'est cette fonction)



Voici mon bout de code:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
    //Déclaration du pointeur de structure de type MYSQL
 
    MYSQL mysql;
 
    //Initialisation de MySQL
 
    mysql_init(&mysql);
 
    //Options de connexion
 
    mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
 
 
 
    //Si la connexion réussie...
 
    if(mysql_real_connect(&mysql,"host","user","pass","bdd",3306,NULL,0))
 
    {
 
        cerr<<"Connected"<<endl;
 
        //Requête qui sélectionne tout dans ma table scores
 
        mysql_query(&mysql, "SELECT * FROM livredor");
 
 
 
        //Déclaration des objets
 
        MYSQL_RES *result = NULL;
 
        MYSQL_ROW row;
 
 
 
        unsigned int i = 0;
 
        unsigned int num_champs = 0;
 
 
 
        cerr<<"err1: "<<mysql_error(&mysql)<< endl;
 
        //On met le jeu de résultat dans le pointeur result
 
        result = mysql_use_result(&mysql);
 
        cerr<<"err2: "<<mysql_error(&mysql)<< endl;
 
 
 
        //On récupère le nombre de champs
 
        num_champs = mysql_num_fields(result);
 
        cerr<<"err3: "<<mysql_error(&mysql)<< endl;
 
 
 
        //Tant qu'il y a encore un résultat ...
 
        while ((row = mysql_fetch_row(result)))
 
        {
 
            //On déclare un pointeur long non signé pour y stocker la taille des valeurs
 
            unsigned long *lengths;
 
 
 
            //On stocke ces tailles dans le pointeur
 
            lengths = mysql_fetch_lengths(result);
 
 
 
            //On fait une boucle pour avoir la valeur de chaque champs
 
            for(i = 0; i < num_champs; i++)
 
            {
 
               //On ecrit toutes les valeurs
 
               printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
 
            }
 
            printf("\n");
 
        }
 
 
 
        //Libération du jeu de résultat
 
        mysql_free_result(result);
 
 
 
        //Fermeture de MySQL
 
        mysql_close(&mysql);
 
 
 
    }
 
    else  //Sinon ...
 
    {
 
        printf("Une erreur s'est produite lors de la connexion à la BDD!: %s\n",
 
          mysql_error(&mysql));
 
    }