|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : mars 2004 Messages : 79 ![]() |
Bonjour je cherche à effetuer une requête d'insertion sur une table dont un des champs est de type BINARY.
Voilà grosso modo comment je voudrais proceder : - je rempli un tableau dont chaque élément et un couple de réél (std::pair<float,float>) - une fois le tableau rempli je voudrais l'insérer dans ma base de données. C'est là que je suis dans le floue total. J'ai choisi BINARY comme type de données pour écrire mon tableau, mais au niveau de la requête je ne vois pas trop comment procéder. Je code en C++ et voilà à quoi ressemble pour le moment mon code : Code :
Je ne maitrise pas suffisament encore le code pour vous donnée l'err exact d'execution de la requête mais j'y travail... si quelqu'un peux me donner des pistes en attendant (genre le %x ne marchera jamais, des infos sur le type BINARY etc...) dernier moint ma table : nom : maTable champs1 : ID type : int champs2 : tableauDeDonnees type : BINARY(200) merci d'avance à bientôt |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Premièrement je suggère à priori l'utilisation du type VARBINARY plutot que BINARY pour éviter la consommation excessive de place disque.
Ensuite, pour insérer des valeurs de type BINARY on peut utiliser des chaines hexadecimale précédée de 0x: Code :
L'alternative est d'utiliser des "prepared statements" et des variables bindées (voir ct_dynamic() & co). Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mars 2004 Messages : 79 ![]() |
en effet cela foncitonne !
Par contre après pour récupérer ces données c'est vraiement la galère mais je crois qu'il faut que je post dans le forums C++ parce que c'est hors sujet... merci en tout cas ! |
|
|
00
|
|
|
#4 |
![]() ![]() |
Pas du tout...
Il faut simplement binder (via ct_bind()) avec le bon type. Si on declare une variable de type CS_BINARY on peut faire un ct_bind() avec un type CS_BINARY_TYPE et dans ce cas les données renvoyées sont effectivement en binaires purs. Si on bind en type CS_CHAR_TYPE alors OpenClient convertit en hexadecimal. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mars 2004 Messages : 79 ![]() |
Merci pour ces précision mais je crois que mon problème est ailleurs :
En fait je n'arrive pas à insérer dans la base le contenu entier de mon tableau ou de ma liste. pour cela il me faudrait plutôt des précision syntaxique en C++, en effet en faisant des affichages de : *monTableau ou monTableau ou lst j'obtient les valeurs des élément d'indice 0, et non pas le contenu entier de mon tableau ou de ma liste. Il faut donc que je traite d'abord ce problème avant d'envisager la suite. merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com