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 :

Rafraichir dbgrid apres insertion d'une donnée ds une table


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Rafraichir dbgrid apres insertion d'une donnée ds une table
    J'utilise un dbgrid pour afficher une table d'oracle et a chaque fois que j'insère ou modifie une donnée, le dbgrid ne se rafraichi pas et je suis obliger de relancer le programme pour que le dbgrid se mette a jour.
    J'ai deja essayé de mettre dbgrid.refresh mais ca ne marche pas.
    Que dois-je faire?
    Merci d'avance

  2. #2
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut
    Salut,
    Essaye de rafraichir la table plutot que le DBGrid.
    @ plus

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    le dbGrid est un contrôle orienté données. Il se contente donc (et c'est déjà bien ) d'afficher un résultat...

    donc, et je suis d'accord avec Bidochon, c'est le DataSet qui doit être "rafraichi", en fait un simple Close puis Open devrait t'afficher les résultats tant attendus...

    @+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Oui mais j'utilise des datasource et des adoquery. Comment faire pour que ca se fasse automatiquement a chaque ouverture de fiche?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Points : 125
    Points
    125
    Par défaut
    Dans ton formcreate de ta form, tu ouvre ta requête.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    En fait a chaque fois que je rentre une inscription et que je valide avec un bouton qui possède le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    try
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('insert into system.Inscription values (''Foot_matin_1'','''+dbedit1.text+''',''10'',''15'')');
    adoquery1.execSQL;
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('commit');
    adoquery1.execSQL;
    showmessage('Inscription validée');
    except
    showmessage('Vérifiez le numéro du client')
    end;
    , le dbgrid n'affiche plus rien.
    J'ai deja essayé de mettre Adoquery1.close et Adoquery1.open a la fin de ce code mais ca ne fonctionne pas

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    J'ai trouvé mon erreur. Elle venait du fait que j'utilisais le mm adoquery que pour l'affichage du dgbrid... Quelle bete erreur...
    Merci en tout cas!

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    bah c'est un peu normal
    tu devrais peut être regarder TUpdateSQL dans l'aide
    ou à défaut ajouter un truc du genre

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from system.Inscription where <le nom du champ> = '+dbedit1.text);
    adoquery1.open;

    qui n'est pas la meilleure solution et de loin
    en gros quand tu fait
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from system.Inscription where <le nom du champ> = '+dbedit1.text);
    tu changes l'instruction sql du tquery
    et open (pour les select) ou execsql (pour les update, insert, delete) execute l'instruction ce qui fait que dans ton code quand tu rajoute
    Adoquery1.close et Adoquery1.open
    c'est commit qui s'éxecute

    pour obtenir ce que tu veux regarde dans l'aide
    tu mettras soit un adoquery avec un truc du style updatesql
    soit 2 adoquery
    un (ado1) avec select et ton dbedit1 avec comme datasource celle de ce query et datafield ton champ
    et un second (ado2)contenant l'instruction d'insert dans l'événement onclick de ton bouton
    tu peux alors ajouter

    ado2.close;
    ado2.sql.clear;
    ado2.sql.add('select * from system.Inscription where <le nom du champ> = '+dbedit1.text);
    ado2.open;

    je pense que tu devrais quand même prendre un bouquin sur delphi....

    A+

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/05/2013, 17h48
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [WD16] Lecture donnée d'une base dans une valeur d'une autre base
    Par gef13 dans le forum WinDev
    Réponses: 2
    Dernier message: 16/11/2011, 09h05
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 2
    Dernier message: 18/12/2006, 19h04

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