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

C++Builder Discussion :

Validation de données via un DBGRID


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par défaut Validation de données via un DBGRID
    Bonjour,
    quel est le meilleur évènement pour tester si l'utilisateur a saisie des valeur correcte ?

    Faut il le faire un dbgrid ,ClientDataset ou fournisseur ?

    J'ai essaye ceci sur l' élèvement BeforePost de mon ClientDataSet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    void __fastcall TDataModule1::CDSPersBeforePost(TDataSet *DataSet)
    {
     
       if(DataSet->FieldByName("NOM")->IsNull){
     
       MessageDlg("Nom vide", mtWarning, TMsgDlgButtons() << mbOK, 0);
     
       DataSet->FieldByName("NOM")->FocusControl();
       DataSet->Cancel();
     
       }
     
    }
    Si j'appelle le méthode cancel() j'annule le post() cependant j'efface tout
    dans le DBGRid .

    Comment faire pour récupérer les données déjà saisie et le réaffecter au DbGrid ?

    Existe -il une autre méthode pour annuler en cas d'erreur ?

    merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 071
    Par défaut
    condition sur l'insertion dans un DBGrid

    N'utilise pas Cancel, mais plus "Abort();" c'est la méthode indiquée par l'aide !


    Citation Envoyé par Aide de la Touche F1
    Une application peut utiliser BeforePost pour effectuer des contrôles de validité sur les modifications de données avant de les valider. En cas de problème de validité, il suffit d'appeler Abort pour annuler l'opération de validation (Delphi) ou de déclencher une exception (C++).
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 218
    Par défaut
    merci de ta réponse, cela marche

    pas évident quand on débute......

    comment tester si on a une valeur numérique ou pas ?

    merci encore

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 071
    Par défaut
    J'utilise une fonction VCL "TryStrToInt" qui renvoi False si le chiffre n'est pas un entier, ou "TryStrToFloat"
    Tu as aussi la fonction Val en Delphi, je ne sais pas si accessible en C++, TryStrTo* utilse Val

    Pense à l'aide via F1 !
    Il faut tout lire, parfois une toute petite ligne donne l'info utile !
    Faut l'avouer parfois cela ne suffit pas !
    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

Discussions similaires

  1. [XL-2010] Validation données via UserForm avec certains Textbox vides
    Par DEMERSE dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2015, 11h28
  2. Réponses: 4
    Dernier message: 15/12/2014, 12h26
  3. enlever la validation de donnée d'une cellule excel via Delphi
    Par Dany_04 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/06/2011, 13h46
  4. enlever la validation de donnée d'une cellule excel via Delphi
    Par Dany_04 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 22/06/2011, 16h14
  5. dbgrid AND validation des données
    Par samlerouge dans le forum Bases de données
    Réponses: 10
    Dernier message: 11/06/2004, 23h08

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