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 :

condition sur l'insertion dans un DBGrid


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut condition sur l'insertion dans un DBGrid
    Bon soir tt le monde,

    Je saisie mes données dans un DBGrid, le problème que j'ai c'est :
    comment empêcher l'insertion d'un enregistrement que si une condition est valable. (Exemple : prix non valid!!)

    Je veux que le curseur de la DBGrid ne pass pas à la ligne insérée que si il véfirife la condition.

    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Salut,
    Je te conseillerais plutôt d'attendre que les pro répondent mais intuitivement j'aurais fait un truc du genre:

    (si la donnée que tu veux mettre en base de donnée est dans un TEdit )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (Edit1->Text ==prix)
    {
     // ta condition en fait, si tu veux un entier, si ça doit etre inf ou sup à telle ou telle valeur ...ect
    Form1->Query1->SQL->Clear();
    Form1->Query1->SQL->Add( "INSERT INTO table (champ)" );
    Form1->Query1->SQL->Add( "VALUES ( " );
    Form1->Query1->SQL->Add( QuotedStr( Form1->Edit1->Text ) + " ) " );
    Form1->Query1->ExecSQL();
    }

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    non, je travaille avec une DBGrid

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 068
    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 068
    Par défaut
    Si le Prix est Global (vient d'ailleurs)
    voir BeforeInsert du DataSet lié au DBGrid !
    Provoqué un Abort annulera l'insertion

    Si le Prix est saisie dans la Grille
    voir BeforeInsert...
    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é
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Merci ShaiLeTroll,

    Oui c'est juste ce que tu dit, mais le problème c'est que :
    l'utilisateur peut appuyer sur la touche vers le bas, ou sur la touche tabulation, dans ce cas la ligne précédente et accptée même
    si la condition n'est pas vérifiée.

    Ce que je veux moi, c'est :
    est=ce qu'il y a une possibilité de bloquer le (bookmark) de la ligne jusqu'à ce que la condition soit vérifié;

    J'est essayé avec la boucle infinie ()

    while (true)
    {

    }

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    mais ça marche pas.

Discussions similaires

  1. Condition sur les valeurs dans un formulaire
    Par afrodje dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/03/2009, 16h38
  2. Ecrire sur plusieurs lignes dans un DBGrid
    Par stfanny31 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/08/2008, 23h26
  3. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45
  4. insertion dans un DBGrid avec un DBNavigator
    Par jakouz dans le forum Composants VCL
    Réponses: 4
    Dernier message: 05/08/2005, 16h12
  5. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25

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