Bonjour,
je suis amené à modifier notre une appli web vb couplé à une base de donnée MS SQL.
Actullement il existe une requete qui renvoie le dernier numéro-PC libre. Voici la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    Sub calc_id_disque()
 
        Dim mon_sql_reader As SqlDataReader
        Dim req_sql As String
        Dim str_val As String
 
        Try
 
            req_sql = "SELECT max(SUBSTRING(num_disque, 7, 4)) "
            req_sql = req_sql + "FROM disque "
            req_sql = req_sql + "ORDER BY max(SUBSTRING(num_disque, 7, 4))"
 
            myCommand = New SqlCommand(req_sql, ISI.Global.Oconn)
            mon_sql_reader = myCommand.ExecuteReader()
 
            mon_sql_reader.Read()
            Me.lbl_id_disque.Text = "N° disque : SPC-D-"
            str_val = Int(mon_sql_reader(0).ToString()) + 1
            Me.lbl_id_disque.Text = Me.lbl_id_disque.Text & str_val.PadLeft(4, "0")
 
            mon_sql_reader.Close()
 
        Catch ex As Exception
            mon_sql_reader.Close()
        Finally
 
        End Try
 
    End Sub
Le problème avec cette requete c'est qu'elle ne tient pas compte des numéros qui n'existent plus, apparement, elle se contente uniquement d'incrementer le dernier chiffre.

Pouvez-vous m'aider à modifier cette requête de manière à ce qu'elle prenne en compte les numéros intermédiare?

J'espère avoir été clair.

Merci pour votre aide.