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

Discussion: Try Except et FireDac

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    mai 2008
    Messages
    2 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 305
    Points : 2 285
    Points
    2 285

    Par défaut Try Except et FireDac

    Bonjour !

    voici un code très classique :
    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
    34
    procedure Tfm_Add.cxButton_SaveClick(Sender: TObject);
    const
      sql_chaine : string = 'insert into TB_NUTRITION (CODE_ENFANT, CODE_ALIMENT, HEURE_ENR, PERIODE)' +
      ' Values (:c_enfant, :c_aliment, :h_heure, :p_periode)';
    var
      i: Integer;
      ch : string;
    begin
      FDQuery_Nutrition.Active := False;
      FDQuery_Nutrition.SQL.Clear;
      FDQuery_Nutrition.SQL.Add(sql_chaine);
      for i := 0 to cxListView1.Items.Count - 1 do
      begin
        ch := TRIM(cxListView1.Items[i].SubItems.Text);
        // Paramètres
        try
          FDQuery_Nutrition.ParamByName('c_enfant').AsString :=
            FDQuery_Enfant.FieldByName('CODE_ENFANT').AsString;
          FDQuery_Nutrition.ParamByName('c_aliment').AsString := ch;
          FDQuery_Nutrition.ParamByName('h_heure').AsDateTime := now;
          FDQuery_Nutrition.ParamByName('p_periode').AsString :=
            RzLEDDisplay1.Caption;
        // Exécution
          FDQuery_Nutrition.ExecSQL;
        except
          on E: EFDDBEngineException do
            case E.Kind of
               ekUKViolated : Format('L''aliment %s a déjà été ajouté pour la période %s',
                  [cxListView1.Items[i].Caption,
                  RzLEDDisplay1.Caption]);
            end;
          end;
      end;
    end;
    Mais l'erreur n'est jamais interceptée pourtant tout parait clair et j'ai pratiquement repris un exemple du site d'embarcadero !!!

    Qu'en dites-vous ?

    Environnement : EDI Delphi 10.2
    Base de données : Firebird 2.5
    Composants : FireDac.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    mai 2008
    Messages
    2 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 305
    Points : 2 285
    Points
    2 285

    Par défaut

    honte à moi
    désolé j'avais omis d'afficher le message ?

    je viens de corriger ma bétise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ShowMessage(Format('L''aliment %s a déjà été ajouté pour la période %s',
                  [cxListView1.Items[i].Caption,
                  RzLEDDisplay1.Caption]));
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

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

Discussions similaires

  1. try except qu'on m'explique
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/04/2006, 10h52
  2. Problème avec Try ... Except
    Par Kcintim dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2006, 15h31
  3. "try...except" sans message d'erreur
    Par SchpatziBreizh dans le forum Langage
    Réponses: 4
    Dernier message: 12/07/2005, 09h50
  4. [try except keyerror] récupérer le nom de la variable
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 2
    Dernier message: 03/03/2005, 16h59
  5. bloc try/except et API windows
    Par jakouz dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 24/02/2005, 12h21

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