Requette de tri des nombres de version

cs_bizerte Messages postés 5 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 30 mars 2010 - 23 mai 2009 à 12:21
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 27 mai 2009 à 11:13
Est-ce que vous avez une idée sur la requête qui permet de faire le tri des nombres de version (1 , 1.1 , 1.2, 1.3 ….1.10, 1.11 ,2, 2.1….) car avec Order By le tri sera comme suit (1, 1.1, 1.10, 1.11, 1.12, …1.2,1.3…) .

NB: La solution 1; 1.01; 1.02, je la connait etne résolue pas mon problème

Merci

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 mai 2009 à 18:54
Salut
Confronté à la même question il y a quelques années, j'ai utilisé cette technique :
Les versions étant du type X.YY.ZZ et YY ou ZZ ne dépassant jamais 999, je me suis fait une routine qui convertit la version "1.2.192" (cahine) en "1002192" (long)
Ensuite, la comparaison est facilitée.

A placer dans un modeule, par exemple :
   Public Function ConvertiVersion(ByVal sVersion As String) As Long
       ' Transforme la chaine Version 1.2.192
       '                           en 1002192
       ' plus facile pour comparaison
       Dim aTemp() As String
       ' Ajoute des numéros de version à la suite, au cas où la chaine
       '   fournie en manquerait
       sVersion = sVersion & ".0.0"
       aTemp = Split(sVersion, ".")
       ConvertiVersion = CLng(aTemp(0)) * 1000000 + _
                         CLng(aTemp(1)) * 1000 + _
                         CLng(aTemp(2)) * 1
   End Function

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés


<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 mai 2009 à 11:13
Mais y-a pas d'quoi !
Rejoignez-nous