Création de sites Internet et développement en France

Depuis 2005, ABC IDEA répond, résout, expertise et développe pour tous ses clients.

Pour plus d'informations, contactez-nous au  09 52 24 95 70.

Articles >  Classic ASP

Insérer plusieurs lignes à partir d’une chaîne d’id avec ASP Classic

Contexte

Il est fréquent dans les applications web de recevoir une chaîne de données contenant plusieurs identifiants, séparés par des virgules. L’objectif ici est d’utiliser cette chaîne pour insérer plusieurs lignes dans une base de données SQL Server via ASP Classic.

Exemple de chaîne reçue

Imaginons que nous recevons la chaîne suivante :

"14,13,2,1,18"

Chaque nombre représente un element_id à associer à un reference_id dans une table appelée liens_elements_references.

Code ASP Classic

Voici le code complet pour parser la chaîne, nettoyer les espaces, et effectuer les insertions en base :

<% 
Dim chaineIds, ids, i, sqlInsert
Dim reference_id

reference_id = rs("reference_id") ' ID de la référence reçu depuis un recordset
chaineIds = "14, 13, 2, 1, 18" ' Chaîne à traiter

' Nettoyage et découpage
chaineIds = Replace(chaineIds, " ", "") ' Supprime les espaces
ids = Split(chaineIds, ",")

For i = 0 To UBound(ids)
    If IsNumeric(ids(i)) Then
        ' Construction de la requête INSERT
        sqlInsert = "INSERT INTO liens_elements_references (element_id, reference_id) VALUES ("&ids(i)&", "&reference_id&")"
        conn.Execute sqlInsert
    End If
Next
%>

Explications

  • Replace() : supprime les espaces pour éviter les erreurs
  • Split() : découpe la chaîne en tableau
  • IsNumeric() : filtre les valeurs non numériques
  • conn.Execute : exécute l’instruction SQL côté serveur

Option : éviter les doublons

Si vous souhaitez éviter l’insertion de doublons (cas où une ligne avec ce element_id et ce reference_id existe déjà), vous pouvez ajouter une vérification préalable :

sqlCheck = "SELECT COUNT(*) FROM liens_elements_references WHERE element_id=" & ids(i) & " AND reference_id=" & reference_id
Set rsCheck = conn.Execute(sqlCheck)
If rsCheck(0) = 0 Then
    conn.Execute sqlInsert
End If

Conclusion

Ce type de script est très utile pour gérer des insertions multiples basées sur une chaîne d’IDs reçue depuis un formulaire ou une requête. Il garantit une gestion simple, rapide et sécurisée dans un environnement ASP Classic.

Besoin d'un site Internet ?
Prenez la bonne décision.

Contactez-nous au ​09 52 24 95 70.