Des exceptions d?une procédure stocké

salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011 - 27 nov. 2005 à 13:29
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011 - 30 nov. 2005 à 16:13
Salut







je cherche comment je peux gérer des exceptions d’une procédure stocké qui ajoute des nouveau enregistrement




les photos des message d'erreurs




le code pour delphi
with ModuleTables.ADOajoutTGChapitres do
begin
parameters.parambyname('@nouvCode').value := DBEGCCode.Text;
parameters.parambyname('@nouvLibFrancais').value := DBEGCLibFrancais.Text;
parameters.parambyname('@nouvLibArabe').value := DBMGCLibArab.Text;
parameters.parambyname('@nouvSecBudget').value := StrToInt(DBRGGCSectionBudget.Value);
execproc;
cleftgchapitres := parameters.parambyname('@cleftgchapitres').value;
end;
merci d'avence, j'attend votre aide

7 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
27 nov. 2005 à 20:18
BEGIN

TRY

// on essaye :

with ModuleTables.ADOajoutTGChapitres do

begin

parameters.parambyname('@nouvCode').value := DBEGCCode.Text;

parameters.parambyname('@nouvLibFrancais').value := DBEGCLibFrancais.Text;

parameters.parambyname('@nouvLibArabe').value := DBMGCLibArab.Text;

parameters.parambyname('@nouvSecBudget').value := StrToInt(DBRGGCSectionBudget.Value);

execproc;

cleftgchapitres := parameters.parambyname('@cleftgchapitres').value;

end;

EXCEPT

// on geres les erreurs

FINALLY

// ont fait obligatoirement meme si erreur, bug, plantage, utilisateur partis ect...

END;
0
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011
28 nov. 2005 à 01:42
salut

il n'eccepte pas EXCEPT et FINALLY en meme temps
0
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011
28 nov. 2005 à 01:45
mais aussi je cherche les exceptions pour ces cas
0
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011
28 nov. 2005 à 01:57
merci

tu sais le probleme qu'il n'eccepte pas EXCEPT et FINALLY en meme temps dans la meme try il accepte l'un des deux



mais aussi je veux gére ces exceptions pour iliminé cette boite de dialog
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011
28 nov. 2005 à 02:15
merci pour votre aide

j'ai reglé un peut et j'ai iliminé la fenetre

voila le code

try

with ModuleTables.ADOajoutTGChapitres

do begin

parameters.parambyname('@nouvCode').value := DBEGCCode.Text;


parameters.parambyname('@nouvLibFrancais').value :=
DBEGCLibFrancais.Text;

parameters.parambyname('@nouvLibArabe').value := DBMGCLibArab.Text;

parameters.parambyname('@nouvSecBudget').value := StrToInt(DBRGGCSectionBudget.Value);

execproc;

cleftgchapitres := parameters.parambyname('@cleftgchapitres').value;

end;

except

// on geres les erreurs

on E: Exception

do begin

st1 := E.Message;

st2 := IntToStr(E.HelpContext);

showmessage('Message : ' + st1 + ' - Help : ' + st2);

end;

end;

le message il es le meme message de la fentre

et le HelpContext il es 0

merci pour votre aide
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
30 nov. 2005 à 13:03
Une "violation de la contrainte PRIMARY KEY" signifie que dans ta table tu as un problème de clé primaire (normalement composée de une ou plusieurs colonnes, tu as soit un ou plusieurs champs (colonnes) de(s) clé(s) primaire(s) avec une valeur nulle, soit une ligne ou plusieurs avec une clé primaire identique.

N.B. PRIMARY KEY correspond simplement à la combinaison de UNIQUE et NOT NULL.

Donc, avant d'insérer des nouveaux éléments, il serait judicieux de vérifier que les données de la clé primaire, ne soient pas déjà présente dans ta table et ainsi garantir qu'il n'y ait pas de doublon de clé primaire.

En pseudo code, ça doit donner quelquechose comme ça :

try
// vérification si clé primaire déjà présente
// en recherchant la position dans la table
// de l'enregistrement correspondant à la clé primaire

if ( PositionnementTable( ClePrimaire )=-1 ) then
begin
// On n'insère pas les nouvelles données
// Eventuellement on met à jour les données existantes
MiseAJourTable( Donnees )
end else
begin
// insertion des nouvelles données
InsertionTable( ClePrimaire, Donnees )
end ;

except
// Gestion des erreurs ici
end ;

Cordialement.



<HR>




Il existe 10 catégories de personne. Ceux qui connaissent le binaire et les autres...
0
salimdz2004 Messages postés 68 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 janvier 2011
30 nov. 2005 à 16:13
merci c vraiment tres gentil de votre part

ta raison oui il ya une insertion d'une key en double ca qui dans cette erreur
0
Rejoignez-nous