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 :

Paradox et blinder les requêtes


Sujet :

Bases de données Delphi

  1. #1
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut Paradox et blinder les requêtes
    Bonjour,

    Je développe une application pour le cadre d'un projet scolaire et j'aurais une question. je n'ai pas trouvé comment surveiller les erreurs éventuels quand j'exécute mes requêtes.
    J'utilise les requêtes SQL avec les composants: TQuery et TDataSource, donc après avoir fais mon Query.Open si la table n'a pas été trouvé, ou si la requête SQL est mal foutue je voudrais bien intércépter ces erreurs au lieu d'avoir un plantage de toute mocheté.
    J'ai essayé de regarder dans l'aide à propos du composant query mais je n'ai rien trouvé.

    Devrai-je utiliser des exceptions? si oui ben j'ai essayé de voir s'il y'avait des exceptions pour ce composant mais comme je l'ai dis au dessus l'aide ne m'avance pas :/

    Merci pour votre aide
    Compil your life guy!
    The Aures Project

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Citation Envoyé par Goundy Voir le message
    Devrai-je utiliser des exceptions?
    Oui, tu peux intercepter les erreurs de type EDatabaseError (ou ses descendants).

    @+ Claudius

  3. #3
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut
    Salut

    Merci pour ta réponse je viens de voir cette excéption :$
    Mais sinon c'est la seule qu'il y'a là :/ et rien qu'avec ca comment je peux détecter si par exemple la requête SQL qui est incorrecte ou par exemple si la table n'existe pas ... etc ?

    Merci
    Compil your life guy!
    The Aures Project

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 449
    Points : 24 856
    Points
    24 856
    Par défaut
    tu intercepte l'exception avec un try except, il est vrai que le message n'est pas pratique à gérer pour détecter tel ou tel erreur, ... mais rien ne t'empeche de lancer d'autres requêtes de contrôle (genre un "Select * From Table where 0"), celui-ci t'indiquera que la table n'existe pas, et si cela passe, c'est probablement une erreur de syntaxe ...

    Maintenant, Paradox, c'est une base locale, tu n'as pas bcp d'autre erreur que l'absence d'une table, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Un code dans ce genre pour gerer les exceptions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try
     La requete
    except
     if (E is EDBEngineError) then
      case EDBEngineError.Errors[0].ErrorCode of
       No_Erreur1 : Gestion_Exception1;
       No_Erreur2 : Gestion_Exception2;
     end;
    end;
    Ou "ErrorCode" Indique le code d'erreur renvoyé par le BDE et "Gestion_Exception" une fonction pour gerer l'erreur spécifiée.
    Si vous êtes libre, choisissez le Logiciel Libre.

  6. #6
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut
    Les gars? Merci beaucoup
    Compil your life guy!
    The Aures Project

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    [QUOTE=TryExceptEnd;2718416]

    if (E is EDBEngineError) then

    c quoi le E dans ce if??

    j ai essayé y a une erreur de syntaxe ou j ai pas compri i

    merci

  8. #8
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Désolé, j'ai confondu avec un autre code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try
     La requete 
    except
     on EDBEngineError do
     case EDBEngineError.Errors[0].ErrorCode of
      No_Erreur1 : Gestion_Exception1;
      No_Erreur2 : Gestion_Exception2;
     end;
    end;
    Si vous êtes libre, choisissez le Logiciel Libre.

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

Discussions similaires

  1. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  2. Réponses: 5
    Dernier message: 16/08/2005, 12h15
  3. Réponses: 44
    Dernier message: 14/03/2005, 09h43
  4. Paradox:Probleme avec les index
    Par byte dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/01/2005, 16h08
  5. Optimisations mysql sur les requêtes SELECT: index
    Par leo'z dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2003, 13h23

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