nicompx
Messages postés107Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention15 juillet 2009
-
27 nov. 2006 à 12:08
nicompx
Messages postés107Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention15 juillet 2009
-
29 nov. 2006 à 11:25
Bonjour,
Pouvez-vous me dire comment placer le résultat d'une requête MySQL (API C) dans un emplacement mémoire et l'afficher?
En sachant que le résultat de la requête est une chaîne HEXADECIMALE.
//Execution de la requête SQL de sélection
mysql_query(&mysql,cQuery);
result = mysql_use_result(&mysql); //initialise un jeu de résultats mais ne l'enregistre pas dans le client,
//lit le résultat directement à partir du serveur
num_fields = mysql_num_fields(result); //Retourne le nombre de colonnes
while((row = mysql_fetch_row(result)))
{
lengths = mysql_fetch_lengths(result); //Retourne les longueurs des colonnes de la ligne
cRESULT = (unsigned char *)malloc( (int)lengths );
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 28 nov. 2006 à 19:55
Salut,
C'est ce que fait printf() non? Je ne vois pas où est le problème (à part que l'espace alloué au résultat la requête n'a pas été libéré, que la connection à la base n'a pas été fermée, et qu'aucune variable n'a été déclarée).
"... En sachant que le résultat de la requête est une chaîne HEXADECIMALE."
Non non, le résultat du champ contient de l' hexadécimal, mais c'est une chaîne de caractères avec zéro de terminaison. Ca justifie le printf("%s") ...
Et pas besoin de memset, ni du malloc cRESULT qui, lui non plus, n'est pas libéré.