2009/7/7 Pierre Valade <[email protected]>:
>
> The allowable maximum length is the same for BINARY and VARBINARY as
> it is for CHAR and VARCHAR, except that the length for BINARY and
> VARBINARY is a length in bytes rather than in characters.
>
> Donc c'est des bytes... normalement ça devrait passer...
> Mais d'ailleurs, je comprends pas pourquoi j'ai le droit de faire
>
> insert into entities (id) values ('string')
>
> alors que la column est binary...
>

Tu n'as pas du bien comprendre le principe du binary. Les types
char/varchar stockent des chaines non binaires alors que les binary le
permettent. Ca ne veut pas dire que tu stocke de l'hexa. Tu as toute
la table ascii si tu le désire.

La page que tu cite
(http://dev.mysql.com/doc/refman/5.0/en/binary-varbinary.html) donne
un exemple concret où est stocké une valeur 'a' dans une colonne de
type binary(3). Cet valeur est ensuite affichée en hexa par
l'opérateur HEX et affiche bien le code ascii de la lettre 'a' en hexa
: 61.

Le comportement que tu reproches est donc parfaitement normal : tu
essaie de stocker 16 charactères (d'un octet chacun) et il en stocke
effectivement 16. Si tu veux stocker ta chaine de 16 octets se
trouvant sous forme binaire, tu devras la convertir.

-- 
http://fabien.jakimowicz.com

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à