Bonjour,
Je suis depuis un moment sur la conversion d'un bigint d'id d'enregistrement de MySql (mysql.h) vers un programme en C.
Le programme me retourne un Id égale à 49 au lieu de 1 et 50 au lieu de 2, etc...
Pourquoi ? quelqu'un aurait-il une idée?
Code:
La tablea:
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 typedef struct Raspberry{ unsigned int id; char hostname[20]; char ip[15]; } Raspberry; ... void query_raspi(Raspberry (*raspis)[255]) { ... while ((row = mysql_fetch_row(result))) { (*raspis)[i].id = (unsigned int)(*row)[0]; // --> renvoie 49 au lieu de 1 sprintf((*raspis)[i].hostname, "%s", row[1]); sprintf((*raspis)[i].ip, "%s", row[2]); printf("%u %s %s\r\n", (*raspis)[i].id, (*raspis)[i].hostname, (*raspis)[i].ip); i++; } //Libération du jeu de résultat mysql_free_result(result); ....
Merci, Giamba
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 CREATE TABLE IF NOT EXISTS `raspi` ( `id` bigint(20) unsigned NOT NULL, `hostname` varchar(50) NOT NULL, `ip` varchar(15) NOT NULL, `piece` varchar(50) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -- -- Contenu de la table `raspi` -- INSERT INTO `raspi` (`id`, `hostname`, `ip`, `piece`) VALUES (1, 'raspberrypi', '192.168.1.240', 'chaufferie'), (2, 'RPI2B', '192.168.1.242', 'salon'); -- -- Index pour les tables exportées -- -- -- Index pour la table `raspi` -- ALTER TABLE `raspi` ADD UNIQUE KEY `id_2` (`id`), ADD UNIQUE KEY `id_3` (`id`), ADD KEY `id` (`id`); -- -- AUTO_INCREMENT pour les tables exportées -- -- -- AUTO_INCREMENT pour la table `raspi` -- ALTER TABLE `raspi` MODIFY `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
Partager