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
|
//==============================================
void BDDDump (GADGET * p_gadget, char* pathMysql,char *host,char *bdd, char *user, char *mdp)
{
//Partie codée à partir du tuto API C Mysql
MYSQL *mysql =NULL;
const char * valeur;
unsigned int num_champs = 0;
char table1[32], query[1024], path[256];
int i;
mysql = mysql_init(NULL);
mysql_options( mysql,MYSQL_READ_DEFAULT_GROUP, valeur);
if(mysql_real_connect(mysql,host,user,mdp,bdd,0,NULL,0))
{
//Pour trouver toutes les tables
mysql_query(mysql, "SHOW TABLES");
//Déclaration des pointeurs de structure
MYSQL_RES *result = NULL;
MYSQL_ROW *row = NULL;
result = mysql_use_result(mysql);
num_champs = mysql_num_fields(result);
//chemin du fichier de sauvegarde
strcpy(path,p_gadget->repSauvegarde);
strcat(path,"\\");
strcat(path,gtk_entry_get_text(p_gadget->Edit[2]));
strcat(path,".sql");
//Tant qu il y a encore un résultat ...
while ((row = mysql_fetch_row(result)))
{
unsigned long *lengths;
// stockage de la taille dans le pointeur
lengths = mysql_fetch_lengths(result);
// boucle pour avoir la valeur de chaque champs
for(i = 0; i < num_champs; i++)
{
sprintf(table1,"%.*s ", (int) lengths[i], row[i] ? row[i] : "NULL");
snprintf(query, sizeof(query) - 1, "select * into outfile '%s' from %s;", path,table1);
mysql_query(mysql,query);
printf("%s, %s\n",path,table1);//test
}
}
//Libération du jeu de résultat
mysql_free_result(result);
mysql_close(mysql);
}
else
{
BDDBackupMessage(p_gadget, i);
}
} |
Partager