IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Gestion des erreurs pour insertion dans base de données


Sujet :

ASP

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Gestion des erreurs pour insertion dans base de données
    salut
    voila, j'ai un formulaire pour inserer des utilisateurs dans une base de données SQL SERVER et j'aimerais pouvoir gérer les erreurs et l'afficher sur ma page en cas d'erreur (ex clé primaire deja existante)
    J'ai trouvé un moyen (ci dessous) mais le message n'est pas tres explicite ...
    J'ai vu qu'il existait un objet ADO Error qui semble être plus précis mais je n'ai pas tres bien compris comment m'en servir, ou peut etre y a t'il aussi une meileure solution pour indiquer l'erreur
    quelqu'un peut il m'aider .?

    MErci

    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
    30
    31
    32
    33
    <%
    	set RS = Server.CreateObject("ADODB.RecordSet")
    	RS.CursorType = 2
    	RS.LockType = 3
     
    	'pour la surveillance d'erreur
    	on error resume next
     
    	RS.Open "users", Session("objConn")
     
    	Rs.AddNew
    	RS("user_name") = user_name	
    	RS("user_surname") = user_surname
    	RS("login") = login
    	RS("pwd") = pwd
    	RS.Update
     
    	RS.Close
    	Set RS = nothing
     
     
    	'Affichage de l'erreur
    	If Err Then
    		Response.Write Err.Description
    		Response.Write Err.number
    	Else
    		Response.Write  "Cet enregistrement a bien été ajouter"
    		Response.Write "<a href=""consulter.asp?utilisateurs=on&action=Consulter"">consulter>"
    	End If
     
    	on error goto 0
     
    %>
    cela me renvoie ce message si j'essaye d'inserer un login deja présent ds la table :

    L'opération demandée n'est pas autorisée dans ce contexte

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Il ne t'indique pas le numéro de la ligne ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    non il me met juste ca, et j'aimerais que ce soit un message pour l'utilisateur, donc qui ne va pas forcément voir la source

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    Salut,

    j'ai pas de réponse directe à ta question, mais tu peux aussi faire une fonction qui teste l'existence du login saisie dans ta base avant d'envoyer ton insertion.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    oui merci pour ta réponse,

    c'est ce que j'ai finalement fait. Mais j'aurais voulu savoir ca pour pouvoir aussi l'utiliser dans d'autres cas, comme mauvais type inséré etc ... et ne pas avoir à énumérer tous les cas dans ma fonction, m'enfin tant pis

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    Je doute qu'il existe une solution exhaustive avec asp pour gérer tous les types d'erreur.

    Pour etre vraiment carré :

    1- Vérification des données saisies par l'utilisateur en javascript pour eviter un appel au serveur inutile
    2 - Vérification coté serveur des données envoyées pour ceux qui auraient désactiver javascript...
    3 - Gestion des cas particulier comme ta contrainte d'id
    4 - Envoie de la requete à la bdd
    5 - C'est à ce niveau que tu peux recupérer une eventuelle erreure, mais davantage liée au SGBD ou à la communication serveur web - serveur données.

    Et comme tu utilises Sql server, tu peux aussi abuser des procédures stockées qui pourront mieux gérer tes erreurs je pense

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    ok, merci pour la réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Fonction de date pour insertion dans base MySQL
    Par jubourbon dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/06/2010, 16h27
  2. Réponses: 3
    Dernier message: 04/12/2007, 10h55
  3. [SQL-SEVER2005] Gestion des erreurs pour les requêtes
    Par eagleleader dans le forum MS SQL Server
    Réponses: 22
    Dernier message: 16/10/2007, 09h59
  4. Gestion des erreurs pour runtime
    Par cbleas dans le forum Runtime
    Réponses: 1
    Dernier message: 09/12/2006, 14h18
  5. Réponses: 9
    Dernier message: 13/10/2005, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo