Bonjour,

cela fait quelques jours que j'éssaies d'utiliser la version embedded de mysql mais j'ai quelques problèmes...
J'ai défini une structure de table qui correspond à celui utilisé dans l'exemple de mysql embedded, ensuite j'ai copié/collé les fichiers de la base dans un repertoire "datadir" situé dans le répertoire d'exécution du programme.
Seulement quand j'exécute le programmes j'ai toujours une segmentation fault qui se produit, je suppose que c'est parce qu'il ne trouve pas la base à utiliser mais je n'en suis vraiment pas sur...

Voici mon 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
 
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "mysql.h"
 
MYSQL *mysql;
MYSQL_RES *results;
MYSQL_ROW record;
 
static char *server_options[] = { "mysql_test", "--defaults-file=/etc/my.cnf", "--datadir=./datadir" };
int num_elements = sizeof(server_options)/ sizeof(char *);
 
static char *server_groups[] = { "libmysqld_server", "libmysqld_client" };
 
int main(void)
{
   mysql_server_init(num_elements, server_options, server_groups);
   mysql = mysql_init(NULL);
   mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "libmysqld_client");
   mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
 
   mysql_real_connect(mysql, NULL,NULL,NULL, "database1", 0,NULL,0);
   mysql_error(mysql) ;
   mysql_query(mysql, "select column1, column2 from table1");
   results = mysql_store_result(mysql);
   mysql_error(mysql) ;
   printf("Result : %s\n",results) ;
   while((record = mysql_fetch_row(results))) { // Erreur de segmentation à cette ligne
   	  printf("boucle\n") ;
      printf("%s - %s \n", record[0], record[1]);
   }
   printf("test\n") ;
   mysql_free_result(results);
   mysql_close(mysql);
   mysql_server_end();
 
   return 0;
}
A l'exécution j'obtiens ceci :
loris@mvision11:~/workspace/TestMysql/Debug$ ./TestMysql
Result : (null)
Segmentation fault

Si quelqu'un voit d'où vient mon erreur qu'il me l'indique svp je vois pas d'où ca peut venir...