Comment obtenir la taille des données dans un champ BLOB dans le jeu de résultats?(en C++ et MySQL Connecteur C++)MySQL, C++: Besoin de taille de Blob pour lire les données BLOB
Pour lire les données du jeu de résultats, j'allouer de la mémoire pour le premier. Afin d'allouer de la mémoire, j'ai besoin de connaître la taille des données blob dans le jeu de résultats.
Recherche sur le web et StackOverflow, j'ai trouvé deux méthodes: OCTECT
et flux BLOB.
Une méthode pour trouver la taille BLOB consiste à utiliser la fonction OCTECT()
, ce qui nécessite une nouvelle requête et produit un nouvel ensemble de résultats. Je préférerais ne pas utiliser cette méthode.
Une autre méthode consiste à utiliser le flux BLOB et à chercher à la fin, et obtenir la position du fichier. Cependant, je ne sais pas si le flux peut être rembobiné au début afin de lire les données. Cette méthode nécessite une lecture supplémentaire du flux entier.
ResultSet
Les
et ResultSetMetaData
interfaces de MySQL Connector C++ 1.0.5 ne fournissent pas une méthode pour obtenir la taille des données dans un champ (colonne).
Existe-t-il un processus permettant d'obtenir la taille des données dans un champ BLOB en ne donnant que le jeu de résultats et un nom de champ? J'utilise MySQL Connector C++ 1.0.5, C++, Visual Studio 2008, Windows Vista/XP et "Server version: 5.1.41-communauté MySQL Community Server (GPL)".
Quel est le nom du champ, dans le jeu de résultats, pour le champ LENGTH()? –
Il devrait être possible d'accéder au résultat avec l'index (ici 1). En Java, je vais appeler 'rs.setInt (1)'. – elou
Le nom du champ pour la longueur() est comme écrit: 'longueur (contenu)'. Pour obtenir un nom sensé, vous devez faire 'length (content) comme contentLength' ou similaire. –