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:
Je lance l'appli et viole une des contrainte de la base (style une valeur
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;
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]
Partager