Classic ASP - 3 articles
Solutions Classic ASP pour développeurs et administrateurs système
ABC IDEA > Articles > Classic ASP
Ces articles ont pour objectif de vous aider à résoudre des erreurs récurrentes rencontrées sur Classic ASP. Ce sujet est traité de manière directe, avec des exemples concrets pour faciliter le débogage et gagner du temps.
Vous y trouverez également des conseils sur l’optimisation SEO technique, la gestion des serveurs IIS, les configurations Windows ou DNS, et la stabilité des environnements web. Ce contenu s’adresse avant tout à celles et ceux qui veulent aller à l’essentiel, sans jargon inutile.
Présentation de la fonction IsDate
La fonction IsDate() en ASP Classic permet de tester si une valeur peut être reconnue comme une date valide par le moteur VBScript. Elle est particulièrement utile pour valider les données saisies par un utilisateur avant un traitement.
Syntaxe
IsDate(expression)
Paramètre :
expression: la valeur à tester (chaîne, variable, etc.)
Valeur de retour
Retourne True si l'expression peut être convertie en une date valide, sinon False.
Exemples d'utilisation
<%
Dim test1, test2, test3
test1 = "18/04/2025"
test2 = "bonjour"
test3 = "2025-04-18 14:30:00"
Response.Write "test1 : " & IsDate(test1) & "<br>"
Response.Write "test2 : " & IsDate(test2) & "<br>"
Response.Write "test3 : " & IsDate(test3)
%>
Résultat possible
test1 : True
test2 : False
test3 : True
Bonnes pratiques
- Utilisez toujours
IsDateavant de convertir une valeur avecCDatepour éviter les erreurs. - Faites attention au format de date saisi (ex : format français vs anglais).
- Le résultat dépend de la configuration régionale du serveur.
Cas particuliers
- Une chaîne vide renvoie
False - Des dates ambiguës comme "01/02/03" peuvent poser problème selon la locale serveur
Compatibilité
La fonction IsDate est une fonction native de VBScript, pleinement supportée dans tous les environnements ASP Classic.
Ressources utiles
Présentation de la fonction FormatDateTime
La fonction FormatDateTime() en ASP Classic permet de formater une valeur de type date/heure selon des styles prédéfinis. Elle est très utile pour afficher les dates dans un format lisible ou adapté à l’utilisateur final.
Syntaxe
FormatDateTime(date, [format])
Paramètres :
date: la date ou heure à formaterformat(facultatif) : une constante indiquant le style de formatage
Constantes de format
Voici les constantes possibles pour le second paramètre :
| Constante | Valeur | Description |
|---|---|---|
vbGeneralDate |
0 | Affiche la date et l’heure si elles sont présentes |
vbLongDate |
1 | Date complète selon les paramètres régionaux (ex : mardi 18 avril 2025) |
vbShortDate |
2 | Date courte (ex : 18/04/2025) |
vbLongTime |
3 | Heure complète (ex : 14:32:00) |
vbShortTime |
4 | Heure courte (ex : 14:32) |
Exemples d'utilisation
<%
Dim maDate
maDate = Now()
Response.Write FormatDateTime(maDate, vbLongDate) & "<br>"
Response.Write FormatDateTime(maDate, vbShortTime)
%>
Résultat possible
Vendredi 18 avril 2025
14:32
Conseils d'utilisation
- Utilisez
vbLongDatepour une présentation conviviale de la date. vbShortDateest utile pour stocker ou comparer des dates rapidement.- Les formats dépendent de la configuration régionale du serveur.
Compatibilité
La fonction FormatDateTime est native en VBScript et totalement compatible avec ASP Classic, y compris sous IIS.
Ressources utiles
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.
