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

Bases de données Delphi Discussion :

Get error msg depuis IB


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    dmaitre
    Invité(e)
    Par défaut Get error msg depuis IB
    Bonjour,

    J'aimerais pouvoir récupérer les erreurs de la abse de donnée (FB 1.0) depuis Delphi. Je travaille avec les composants de base "Interbase".
    Ce qu'il me faut, c'est, sur une exception de type EDatabaseError, récupérer la chaîne de caractère de la contrainte violée (ConstrainName). Pour ce faire, dans l'event Applicaltion.OnException, je lance la routine
    suivante (prise sur le net) afin de récupérer la constrainte en infraction
    avec IB:

    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
    function TDM.GetConstraintName: string;
    var
      p: PStatusVector;
      i: Integer;
    begin
      p:= StatusVectorArray;
      Result:= '';
      i:= 0;
      while p[i]<>0 do
      begin
        if p[i] = 2 then
        begin
          Result:= PChar(p[i+1]);
          Break;
        end
        else
        if p[i]=3 then Inc(i);
        Inc(i,2);
      end; //while
    end;
    Je lance l'appli et viole une des contrainte de la base (style une valeur
    NULL dans un champs NOT NULL ALLOWED). L'exception est bien lancé et la
    routine GetConstraintName également lancée. Malheureusement, cette dernière
    me retourne toujours une chaîne vide bien que p recoivent une adresse
    valide. quelqu'un a-t-il une idée de la raison ?

    Merci

    David

    [Modération, rbag : Pensez à utiliser la balise [CODE] qui améliore la lisibilité, merci]

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Par défaut
    As tu essayé le pas à pas pour voir le contenu de ta varaible result

  3. #3
    dmaitre
    Invité(e)
    Par défaut Get Error mas depuis IB
    En fait, cela fonctionne. Je viens de me rendre compte que ça fonctionne mais pas avec tous les constraints. En fait, pour le champs qui ne peut pas être NULL, cela est spécifié dans le DOMAINE du champs et non dans une CHK_CONSTRAINTE. Si je viole une CHK_CONSTRAINTE (ex: CHK1_CLIENT), le résultat de la fonction est bien "CHK1_CLIENT".

    Mon problème, c'est maintenant de pouvoir détecter les messages de la base concernant des restrictions au niveau du DOMAINE.

Discussions similaires

  1. [XL-2007] Error 400 depuis que Windows a été mis à jour
    Par Accessifiante dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 22/07/2014, 17h21
  2. Get tag position depuis un PDF
    Par kapi dans le forum Documents
    Réponses: 0
    Dernier message: 17/01/2014, 15h10
  3. Réponses: 9
    Dernier message: 08/03/2006, 16h04
  4. ERROR 13: Can't get stat of
    Par michel.roger@items-si.fr dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/07/2005, 11h05
  5. ERROR 13: Can't get stat of
    Par delph_b dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 28/07/2004, 14h23

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