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 :

Réinitializez un MaskEdit


Sujet :

Bases de données Delphi

  1. #21
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    J'ai essayer en créant ces variables, aussi en enlevant les indexes non indispensables de ma table modifiée par l'enregistrement.

    mais j'ai toujours la même erreur

  2. #22
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    On reinitialise un Maskedit par un clear
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  3. #23
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    En fait, je ne suis plus avec un MaskEdit mais avec un DateTimePicker

    mais là n'est plus le problème.

    En fait, il faudrait en efet que j'actualise l'affichage du DBGrid en conséquence des changements apportés dans les Edit. Et ceci en repointant sur la ligne changé du DBGrid

  4. #24
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Edit_num_dos est unique dans ta base non ?

    Donc tu rafraichis la grid et tu fait un locate sur ce numéro.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #25
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    et bien il y a plusieurs edit dont la valeur est changée et enregistrée dans la base

    chaque edit correspond à la valeur d'un attribut de chaque tuple de la requête d'affichage

  6. #26
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je ne vois pas où est le problème, tu sais utiliser la fonction locate d'un dataset ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #27
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    euh ben non, j'ai en fait réécrit la fonction telle que tu me la écrite en adaptant cela à mon application.

    En gros j'aurai dû mettre [débutant] dans le titre du topic désolé :'(

  8. #28
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Oki ^^

    Si tu veux faire un locate sur plusieurs champs en même temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if Locate('Champ1;Champ2;etc...',VarArrayof([Edit1.text,Edit2.text,EditEtc.Text],[loCaseInsensitive]) then
      showmessage('Trouvé')
    else
    Showmessage('Non Trouvé');
    Tu remarqueras l'utilisation de la fonction VarArrayOf qui est nécessaire lors de la recherche sur plusieurs champs.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #29
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    quelle galère je n'y arrive vraiment pas !!!!

    comment une chose si simple est si difficile à programmer ?!?

  10. #30
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    montre moi ta requete complète (surtout le nom des champs qui m'interesse) et le nom de ou des edit importants.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #31
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Query_maj
     
    UPDATE echantillon
    SET echantillon.num_dos = :num_dos_change,
    echantillon.dossier_traite = :dossier_traite_change,
    echantillon.comment = :comment_change,
    echantillon.date_traitement = :date_traitement_change
    WHERE echantillon.identifiant = :echantillon_courant;
    je mets à jour la table echantillon

    Les paramètres :
    :num_dos_change
    :dossier_traite_change
    :comment_change
    :date_traitement_change

    se référent aux valeurs des 4 Edit

    Le paramètre :
    :echantillon_courant se référe à l'identifiant de l'échantillon de la requête d'affichage du DBGrid


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Bouton de mise à jour : (appelant la requête de mise à jour)
     
    procedure Tfiche_dos_min.ButtonEnregistrementClick(Sender: TObject);
     
    begin
         If ComboBox_produit1.text = '1' Then
         Begin
         query_maj.ParamByName('echantillon_courant').AsString := query_dos_min.FieldByName('identifiant').AsString;
         End
         Else If ComboBox_produit1.text = '2' Then
         Begin
         query_maj.ParamByName('echantillon_courant').AsString := query_dos_min1.FieldByName('identifiant').AsString;
         End
         Else If ComboBox_produit1.text = '3' Then
         Begin
         query_maj.ParamByName('echantillon_courant').AsString := query_dos_min2.FieldByName('identifiant').AsString;
         End;
         Query_maj.ParamByName('num_dos_change').AsString := Edit_num_dos.Text;
         Query_maj.ParamByName('dossier_traite_change').AsString := Edit_traitement.Text;
         Query_maj.ParamByName('comment_change').AsString := Memo_comment.Text;
         Query_maj.ParamByName('date_traitement_change').AsDateTime := DTP_date_traitement.Date;
         Query_maj.ExecSQL;
         Query_maj.close;
         // ici je n'y arrive pas
    end;
    Suivant le type de produit, je lance telle ou telle requête d'affichage du DBGrid
    Ensuite j'affecte aux paramètres de la requête de mise à jour les valeurs saisies dans les EDIT.

    P.S : Le traitement fonctionne, seulement je n'arrive pas à mettre à jour le DBGrid en conséquence et en "temps réel".

    Voilou

  12. #32
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Askarod
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Bouton de mise à jour : (appelant la requête de mise à jour)
     
    procedure Tfiche_dos_min.ButtonEnregistrementClick(Sender: TObject);
     
    begin
         If ComboBox_produit1.text = '1' Then
         Begin
         query_maj.ParamByName('echantillon_courant').AsString := query_dos_min.FieldByName('identifiant').AsString;
         End
         Else If ComboBox_produit1.text = '2' Then
         Begin
         query_maj.ParamByName('echantillon_courant').AsString := query_dos_min1.FieldByName('identifiant').AsString;
         End
         Else If ComboBox_produit1.text = '3' Then
         Begin
         query_maj.ParamByName('echantillon_courant').AsString := query_dos_min2.FieldByName('identifiant').AsString;
         End;
         Query_maj.ParamByName('num_dos_change').AsString := Edit_num_dos.Text;
         Query_maj.ParamByName('dossier_traite_change').AsString := Edit_traitement.Text;
         Query_maj.ParamByName('comment_change').AsString := Memo_comment.Text;
         Query_maj.ParamByName('date_traitement_change').AsDateTime := DTP_date_traitement.Date;
         Query_maj.ExecSQL;
         Query_maj.close;
         // ici je n'y arrive pas
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With le_Query_de_la_grid do
    begin
      Close;
      Open;
      Locate('num_dos;dossier_traite',VarArrayOf([Edit_num_dos.Text,Edit_traitement.Text]),[locaseinsensitive]);
    end;
    c'est tout ce qu'il y a à faire.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  13. #33
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    nickel cela fonctionne, désolé pour la longueur du topic et merci à toi Malatar

    Bonnes fêtes de fin d'année

  14. #34
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Askarod
    nickel cela fonctionne, désolé pour la longueur du topic et merci à toi Malatar
    Le tout c'est que tu ais compris le fonctionnement du locate ^^


    Bonnes fêtes de fin d'année
    A toi aussi
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. MaskEdit pour saisir une adresse TCP/IP
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 3
    Dernier message: 31/01/2006, 23h04
  2. maskedit et exception
    Par deubal dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/11/2005, 17h22
  3. MaskEdit en parametre d'une procédure
    Par loci dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/09/2005, 18h25
  4. Comment changer le message d'erreur d'un MaskEdit...
    Par eponette dans le forum Composants VCL
    Réponses: 3
    Dernier message: 12/09/2005, 13h40
  5. Problème lors d'encodage dans un Maskedit
    Par panthere6 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2004, 06h35

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