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 :

DBEdit.BeforeScroll : problème de "State"


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par défaut DBEdit.BeforeScroll : problème de "State"
    Bonjour,

    J'ai le même problème que sur ce post : DBEdit ne modifiant pas la BDD

    J'ai essayer de récupérer l'information dans l'évènement BeforeScroll, mais dans mon cas la variable "State" est à la valeur "dsBrowse" changement d'enregistrement, puisque c'est lors d'un changement d'enregistrement sans validation préalable que je veux faire la vérication !

    L'utilisateur n'est donc jamais intérroger.

    Si je met ce code dans l'évènement "BeforePost", cela fonctionne, mais j'ai un plantage puisque le post veut s'exécuter tout de même puisqu'il est en cours!

    Le champs référant se trouve dans le "ListSource" d'une TDBLookupListBox.

    @+
    microJaP

  2. #2
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    bonjour,

    Le "onStateChange" d'un datasource lié à cet ensemble ne conviendraitil pas ?

    a+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par défaut
    Salut et merci de ton aide.

    Cela ne fonctionne pas avec cet évènement :
    Le "onStateChange" d'un datasource lié à cet ensemble ne conviendraitil pas ?
    Le status "Edit" se passe quand l'enregistrement passe en édition et non pas à sa sortie.

    Du coup, j'ai essayer les autres évènements du Query et du DataSource (chose que je n'y aurait pas penser sans ton aide).

    Le seul qui fonctionnerait est "OnUpdateDate" du DataSource, mais nouveau problème, il passe deux dans l'évènement si on accepte de valider les modifications et donc repose deux fois la question !

    Ce n'est donc pas génial non plus !

    @+
    microJaP

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 269
    Par défaut
    salut,

    Tu peux annuler la validation dans l'evenemt beforePost aver Abort.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure MonDataSetBeforePost (DataSet: TDataSet);
    begin
      if MessageDlg ('Confirmer',mtConfirmation,mbOkCancel,0) = mrCancel then
        abort;
    end;
    a+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par défaut
    La méthode que tu propose Zatoobux n'est pas valable non plus. Abort, annule le post et l'enregistrement courant reste le même.

    J'ai essayer de mettre un copie d'écran de ma boîte de dialogue pour donner un aperçu de la chose, je ne sais si j'ai bien compris la méthode pour cela.

    Toujours est-il que je recherche comment intercepter uniquement le post sur un changement d'enregistrement alors que l'enregistrment courant est en édition. J'y est mis des bouton de validation poiur l'utilisateur.

    Chaque méthode qui permet d'intercepter le post imprévu par l'utilisateur, intercepte également les post ordonné par celui-ci, cela fait doublon et n'est pas très cohérent.

    @+
    microJaP
    Images attachées Images attachées  

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 269
    Par défaut
    tu peux flagger les clics sur tes boutons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MonFlag: boolean
    ...
    procedure BtnValidClick (Sender: TObject);
    begin
      MonFlag := true;
    end;
    ensuite dans le beforePost ou dans le beforeCancel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure MaTableBeforePost (Sender: TDataset);
    begin
      if not MonFlag then
        begin
          if ConfirmationUtilisateur <> ok then
            abort
        end;
    end;
     
    procedure MaTableAfterScroll (Sender: TDataset);
    begin
      MonFlag := false;
    end;
    a+

Discussions similaires

  1. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  2. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

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