Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1060 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++ / SQL] Enregistrer un objet en tant que blob

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ / SQL] Enregistrer un objet en tant que blob

n°1738244
ArtPlay
Posté le 28-05-2008 à 11:51:44  profilanswer
 

Bonjour,
 
Je rencontre actuellement un petit souci pour enregistrer un objet perso en tant que blob dans une base SQL (mes connaissances en SQL se résument malheureusement à copier/coller des bouts de code déjà existant, je suis stagiaire dans une boîte, et ne fais que réutiliser des codes. Passé le insert into, je bugge :))
 
Voilà ma classe :  

Code :
  1. class CSignature
  2. {
  3. private:
  4.         CvHistogram * histotot;
  5. CvHistogram * histotop;
  6. CvHistogram * histobottom;
  7. public:
  8. ~CSignature(void);
  9. CSignature(void);
  10.         CSignature(const CSignature & signsrc);
  11. CSignature & operator = (const CSignature & signsrc);
  12. void FillHisto(const CvHistogram * histosrc);
  13. void FillHistoTop(const CvHistogram * histosrc);
  14. void FillHistoBottom(const CvHistogram * histosrc);
  15. CvHistogram * GetHisto(void){return(histotot);};
  16. CvHistogram * GetHistoTop(void){return(histotop);};
  17. CvHistogram * GetHistoBottom(void){return(histobottom);};
  18. };


 
Les CvHistogram étant des structures d'openCV contenant en gros 2-3 int/float et un gros tableau.
 
J'ai trouvé des explications diverses sur internet sur comment enregistrer une image en blob. La méthode consiste apparemment à passer par un fichier où enregistrer l'image. Seulement je ne sais pas comment m'y prendre avec un objet quelconque.
 
J'ai plusieurs pistes cependant : dois-je essayer de passer par un fichier de la même manière ? Dois-je surdéfinir les opérateurs de flot pour que l'insertion se passe sans problème avec des commandes du type :  

Code :
  1. query << "INSERT INTO process(sType, sDescription, idPlanObject, iC_template_path) VALUES('" << mysqlpp::escape << type << "', '"
  2.    << mysqlpp::escape << Encode(std::string(description)) << "', " << idPlanObject << ", '')";


(ça n'a rien à voir, mais c'est un exemple).  
 
Dois-je définir des fonctions pour transformer mon objet en une chaîne de caractères que je sache encoder/décoder ?
 
Bref si quelqu'un peut me confirmer qu'une de ces pistes peut aboutir, ou m'en suggérer une meilleure, ça pourrait beaucoup m'aider.
 
Merci.
 
Sylvain.

mood
Publicité
Posté le 28-05-2008 à 11:51:44  profilanswer
 

n°1738336
ArtPlay
Posté le 28-05-2008 à 14:32:02  profilanswer
 

Remonte petit topic, et apporte moi une aide somme toute assez urgente :(

n°1738351
Joel F
Real men use unique_ptr
Posté le 28-05-2008 à 15:01:51  profilanswer
 

la technique classique de serialisation consiste à prendre toutes les données de ton objets de les écrires dans un tableau de unsigned char et de sauvé ce tableau sous forme de blob.

n°1738353
Taz
bisounours-codeur
Posté le 28-05-2008 à 15:06:27  profilanswer
 

et à faire de l'injection aussi.

n°1738356
Joel F
Real men use unique_ptr
Posté le 28-05-2008 à 15:10:45  profilanswer
 

ah ça aprés moi SQL \o/ je pense juste que le bon vieux serialize to bytestream avait l'air aps mal [:pingouino]

n°1738358
Taz
bisounours-codeur
Posté le 28-05-2008 à 15:12:06  profilanswer
 

Joel F a écrit :

ah ça aprés moi SQL \o/ je pense juste que le bon vieux serialize to bytestream avait l'air aps mal [:pingouino]


si c'est un fichier, il suffit de le lire et ouala.

n°1738359
ArtPlay
Posté le 28-05-2008 à 15:15:25  profilanswer
 

Ok, je saisis bien le concept de sérialisation, c'est un peu ce que je craignais devoir faire - et ça m'a l'air potentiellement fastidieux vu la tête bien imbriquée de mes objets -
 
Quid de l'injection par contre, de quoi s'agit-il ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++ / SQL] Enregistrer un objet en tant que blob

 

Sujets relatifs
[C] Modifier chaine dans tableau à double entréeAppeler SQL sans recharger une page PHP
Importer des données XML dans Oracle (SQL Loader ou DBMS_XMLSave)[C] Stockage tableau dans Mémoire partagée
CGI en langage C[C#] exception NullReferenceExc lors de changement d'image de fond
[C] Appeller une fonction[Resolu] Enregistrer un fichier sous.....
AIDE requete SQL[problème]Enregistrer une phrase dans une structure
Plus de sujets relatifs à : [C++ / SQL] Enregistrer un objet en tant que blob


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR