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

  1. #1
    Membre du Club
    [PostgreSQL] Exception et messages d'erreur de base de données
    Bonne année et bonne santé à toutes et à tous.
    Merci à toutes celles et tous ceux qui partagent leurs connaissances sur ce forum.
    Je vais vous mettre à contribution une nouvelle fois.
    J'ai à peu près terminé la logique d'interrogation, d'insertion et de modification de la base de données (Windows 10; Lazarus 2.0.6; postgresql 11.5). Maintenant j'aimerais sécuriser tous les contacts avec cette base. J'ai donc, dans un premier temps, utilisé dans un try... except
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    on E: Exception do
            if E is EDatabaseError then
              MessageDlg('Error','Erreur Base de Données. Message technique: ' + E.Message,mtError,[mbOK],0);

    Le message est correct mais un peu touffu. J'aimerais le mettre à ma sauce pour le rendre plus direct et plus percutant en partant du code d'erreur renvoyé par la base de données, par exemple 23505 pour la violation d'unicité. J'ai donc essayé d'utilisé EPQDataBaseError dans un try... except
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    on E: Exception do
            if E is EPQDatabaseError then
              Showmessage((E as EPQDatabaseError).SQLSTATE);

    et là boum Error: Identifier not found "EPQDatabaseError". Je ne sais pas dans quelle unité se trouve cet identifiant et si ce que j'essaye de faire est possible.
    Merci d'avance pour votre aide, Michel.

  2. #2
    Modérateur

    Bonjour et bonne année,
    Dans mon CodeTyphon, l'exception est déclarée dans l'unité PQConnection. Il faudra sûrement l'ajouter en uses, mais si tu utilises un autre connecteur, il y a peu de chances qu'elle soit déclenchée.
    Delphi 5 Pro - Delphi 10.3.2 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre du Club
    Merci tourlourou.
    En fait, utilisant ZeosLib, je vais essayer avec EZDataBaseError et je reviens au rapport.
    Michel.

###raw>template_hook.ano_emploi###