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

MS SQL Server Discussion :

[SQL Server 2000] Contrainte Check et exception générée


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut [SQL Server 2000] Contrainte Check et exception générée
    Bonjour à tous,

    Je developpe des programmes Delphi avec des bases SQL Serveur 2000.
    J'aimerais faire quelque chose mais je ne sais pas si cela est possible. Peut-être que les spécialistes pourront me répondre.
    Voila j'ai une table sur lequel j'ai créé une contrainte check pour valider l'ajout d'enregistrement. Cette contrainte check utilise d'ailleurs une fonction utilisateur pour faire son test.
    Tout fonctionne comme je le veux ! Mes contrôles sont opérationnels aussi bien par l'analyseur de requête qu'avec mes programmes...
    mais voila lorsque ma contrainte échoue l'erreur que j'intercepte et que je remonte à l'utilisateur final n'est pas très explicite... C'est une msg assez technique que vous connaissez surement !
    Je voudrais donc soit modifier le message généré par SQL Server (a mon avis peu probable) soit plus simplement en rajouter un autre plus clair.
    Mais bien sur au niveau du serveur et pas du programme comme je le fais actuellement Aujourd'hui j'intercepte l'erreur au moment de la validation de mon enregistrement et si c'est l'erreur sur ma contrainte qui me revient je fais apparaitre mon message a la place du message de SQL.

    Mon but final étant que si la règle métier change (donc mon couple Contrainte/fonction) je change au niveau de SQL (y compris le message utilisateur) sans avoir à retoucher une ligne au programme.

    Voila, j'espère avoir été clair.

    Christophe

    PS : Même si c'est pas possible, merci de le dire si vous en êtes sur.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Tu ne peux pas changer le message d'erreur. Pour contourner le "problème", tu pourrais enlever la contrainte et créer un trigger qui retourne un RAISERROR dans lequel tu écris ce que tu veux. Ce n'est pas forcément une bonne idée, cela peut rendre ton schéma difficile à lire et à maintenir. En général c'est une bonne idée de gérer ça dans l'appli client. Tu pourrais aussi maintenir une table des erreurs, et tu irais chercher le texte à afficher dans cette table, ce qui te libère de la contrainte de recompiler ton appli chaque fois que tu veux changer une virgule.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

Discussions similaires

  1. [SQL Server 2000] Contrainte check
    Par batosai dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/04/2006, 16h16
  2. Gestion exceptions sql server 2000
    Par gdido dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/10/2005, 10h27
  3. Débutant : SQL Server 2000
    Par bd0606 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/10/2003, 11h33
  4. Migration de MS SQL 7 vers MS SQL server 2000
    Par jfphan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/10/2003, 11h24
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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