Je sais que cela a déjà été demandé, et j'ai essayé d'implémenter la solution, mais j'ai juste des erreurs d'exception quand j'appelle ps-> executeUpdate(). Quelqu'un at-il un exemple explicite?Comment définir les données binaires en utilisant setBlob() dans le connecteur C++
Répondre
Désolé Matthew - J'ai supposé la réponse précédente à cette question (par elrohin). Peut-être que j'aurais dû répondre à cela. Quoi qu'il en soit Heres le code il a suggéré:
class DataBuf : public streambuf
{
public:
DataBuf(char * d, size_t s) {
setg(d, d, d + s);
}
};
// prepare sql update statement etc. and set the data pointer
string* pData = ; // ...not part of the original answer
DataBuf buffer((char*)pData->data(), pData->length());
istream stream(&buffer);
ps->setBlob(1, &stream);
ps->executeUpdate(); // This causes an exception in free.c
J'utilise VS9 avec le connecteur/cpp libs de débogage (dernières beta). J'ai aussi essayé d'utiliser char * au lieu de string.
Si une exception est générée dans free.c, cela signifie que de mauvaises choses se sont produites avec la mémoire. Je regarde directement cette fonte. – Puppy
Ce code fonctionne bien pour moi:
Driver *driver;
Connection *conn;
driver = get_driver_instance();
conn = driver->connect("tcp://127.0.0.1:3306", "root", "root");
std::auto_ptr use_stmt(conn->createStatement());
use_stmt->execute("USE world");
std::auto_ptr stmt(conn->prepareStatement("INSERT INTO terrain_texture_tiles_0 (data) VALUES(?)"));
std::string value("A\0B", sizeof("A\0B") - 1);
std::istringstream tmp_blob(value);
stmt->setBlob(1, &tmp_blob);
stmt->execute();
espère que cela aide ... Jaroslav Pribyl
Ce poste est un peu vieux, mais je suis tombé sur la même question. J'ai employé la méthode ci-dessus et cela n'a pas vraiment fonctionné pour mon cas, qui essayait de prendre un vecteur et de l'utiliser pour le flux. Ce que je faisais était de prendre un UUID et de le convertir en une version binaire de 16 octets à utiliser dans la table. En utilisant la méthode ci-dessus, j'ai trouvé que seulement la moitié de mon tampon était peuplé. J'ai fini par utiliser stringstream
.
std::vector<unsigned char> convertedId;
std::stringstream stream;
// convertedId has been populated with the 16 byte binary version
stream = std::stringstream(std::string(convertedId.begin(), convertedId.end()));
// Parameter 1 is BINARY(16)
pStatement->setBlob(1, &stream);
Quelques autres choses à garder à l'esprit. Le flux n'est pas accessible jusqu'à ce que l'une des variantes execute
soit appelée. Vous devrez donc garder le flux jusqu'à ce que vous ayez exécuté execute
.
Espérons que cela aidera quelqu'un et lui fera gagner du temps.
- 1. Données binaires Vb6 à C#
- 2. Y at-il un moyen de définir des variables mysql en utilisant le connecteur JDBC?
- 3. Insérer des données binaires dans SQL Server en utilisant PHP
- 4. Écrire des fichiers binaires en utilisant SAS?
- 5. Données binaires dans .NET? (C++/CLI)
- 6. Evénement COM avec des données binaires dans les arguments
- 7. Comment utiliser les opérateurs >> et << pour les données binaires en C++?
- 8. Ecriture de données binaires
- 9. Comment analyser les données RSS-CB en utilisant C#?
- 10. Données binaires d'écriture iPhone
- 11. trouver les tables a des données binaires
- 12. Gestion des données empaquetées en utilisant C#
- 13. Comment définir les propriétés d'un XTextTable dans OpenOffice.org uno en utilisant C#?
- 14. comment obtenir les données max en utilisant le tri naturel?
- 15. Données binaires lisibles par un humain utilisant Python
- 16. Comment transférer des données binaires avec Python?
- 17. Service WCF avec données binaires
- 18. Création d'un contrôle de connecteur modifiable à l'exécution en C#?
- 19. Comment minimiser les binaires NAnt
- 20. Comment définir le style -webkit-transformer dynamiquement en utilisant JavaScript?
- 21. compresser les binaires dans SVN?
- 22. Comment configurer le connecteur IBM IMS dans JBoss
- 23. Comment définir tous les privilèges des utilisateurs sur un chemin en utilisant asp.net C#?
- 24. Comment écrire des données binaires pour le format d'archive 7z?
- 25. Comment écrire des données binaires dans stdout dans python 3?
- 26. Comment définir le port du client Web dans C#?
- 27. Comment définir l'ordre d'affichage dans Objective-C
- 28. Comment entrer des données en utilisant la console eclipse? (C++)
- 29. Données binaires vs caractère Données confusion
- 30. stocker des données binaires dans mysql
"et j'ai essayé de mettre en œuvre la solution" Comment sommes-nous censés savoir ce que vous avez essayé si vous ne postez aucun code? Il serait également utile de savoir quels tutoriels/exemples vous utilisez. –