MySql.h Identifiant de colonne Id unsigned bigint
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:
Code:
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);
.... |
La tablea:
Code:
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; |
Merci, Giamba