Plus gros que BigInt ?

Résolu
RaphAstronome Messages postés 104 Date d'inscription samedi 7 décembre 2002 Statut Membre Dernière intervention 17 août 2009 - 27 août 2007 à 22:26
RaphAstronome Messages postés 104 Date d'inscription samedi 7 décembre 2002 Statut Membre Dernière intervention 17 août 2009 - 1 sept. 2007 à 22:57
Bonjour,

Je vais bientôt devoir utiliser des entiers plus gros que 64 bits car ils risquent de devenir insuffisants .

Existe t'il en MySQL un moyen d'avoir des entiers de 128 ou 256 bits, le top serait un entier de taille dynamique (comme en Ruby).

RaphAstronome

5 réponses

RaphAstronome Messages postés 104 Date d'inscription samedi 7 décembre 2002 Statut Membre Dernière intervention 17 août 2009
1 sept. 2007 à 22:57
Je vais essayer de le faire avec un BLOB.

RaphAstronome
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
28 août 2007 à 20:55
Avec Sql-Server on peut uriliser le type :
decimal(18, 0) par exemple pour un QWORD.

Ou directement le type :
binary et varbinary avec des chaines hexa.

A voir si MySql supporte ces types.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 août 2007 à 21:11
Que peux-tu bien stocké comme nombre pour que ca ne rentre pas dans un BIGINT ?!?

Sinon tu as toujours la possibilité de le stocker dans 2 BIGINT : l'un pour les bits de poids faibles et l'autre pour les bits de poids forts...
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
29 août 2007 à 21:33
DarkSidious > Aucune statistique de colonne possible avec 2 bigint, sans parler des calculs impossible sans recoder les 2 parties à chaque fois.

exemple une addition :
(mes DoubleQword sont 2 decimal(18,0))

declare @hiBig1 decimal(18,0)
set @hiBig1 = '000000000000000000'
declare @lowBig1 decimal(18,0)
set @lowBig1 = '111111111111111111'


declare @hiBig2 decimal(18,0)
set @hiBig2 = '000000000000000000'
declare @lowBig2 decimal(18,0)
set @lowBig2 = '000000000000000001'


declare @resultat varchar(36)


set @resultat =
cast(cast(@hiBig1 as varchar) + cast(@lowBig1 as varchar) as decimal(36, 0))
+
cast(cast(@hiBig2 as varchar) + cast(@lowBig2 as varchar) as decimal(36, 0))


select replicate('0', 36 - DATALENGTH(@resultat)) + @resultat

Affiche : 000000000000000000111111111111111112

Autant avoir les valeurs dans un seul type non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 août 2007 à 21:56
Salut,

Je suis bien d'accord, mais faute de mieux...
______________________________________
DarK Sidious
0
Rejoignez-nous