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 :

ecrire sur un dbgrid ??


Sujet :

Bases de données Delphi

  1. #1
    nil
    nil est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 50
    Points
    50
    Par défaut ecrire sur un dbgrid ??
    Bonjour a tous
    JE travail avec delphi7 et la bde et je voudrai savoir s'il ya un moyen d'ecrire directement sur un dbgrid que ce dernier est remplis de données tiré d'une requet select ?

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 84
    Points : 95
    Points
    95
    Par défaut
    Personnellement je ne pense pas. Essai avec un TDBCtrlGrid associé avec un TDBNavigator et tu verra ca ira tout seul.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Si tu utilises un query il faut penser que par défaut la propriété requestLive est à false, c'est à dire que la requête renvoye toujours un ensemble de résultats en lecture seule.

    Donc il faut que cette propriété soit à true, puis tu peux modifier l'ensemble de résultats.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      with dbGrid1.DataSource.DataSet do
      begin
        edit;
        //et par exemple
        fields[numero colonne].asstring := 'modif';
        //ou
        fieldByName('nom champ').asInterger := 66;
        post;
      end;
    Devrait convenir, je pense

    Cordialement

  4. #4
    nil
    nil est déconnecté
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    merci pour ton exemple pascal mais sa m'affiche une erreur !!
    cannot modify a read only data-set...
    pourtant voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    with dbGrid1.DataSource.DataSet do
      begin
        edit;
        query1.RequestLive:=true;
        fields[1].asstring := 'modif';
        post;
      end; 
    end;

  5. #5
    Membre régulier Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 111
    Points
    111
    Par défaut
    Déjà la propriété RequestLive doit être spécifiée avant l'ouverture (Open, Prepare, Active, ExecSQL), ensuite il faut vérifier si le curseur est vraiment modifiable (CanModify), car dans la plupart des cas le curseur est en lecture seule (multi-table, restrictions BDE, etc).

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Et comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.Button1Click(Sender: TObject); 
    begin 
      with dbGrid1.DataSource.DataSet do 
      begin 
        if Active then Close;
        RequestLive := true;
        edit; 
        fields[1].asstring := 'modif'; 
        post; 
      end; 
    end;

  7. #7
    Membre régulier Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Pascal Jankowski
    Et comme cela :
    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
     
    procedure TForm1.Button1Click(Sender: TObject); 
    begin 
      with dbGrid1.DataSource.DataSet do 
      begin 
        if Active then Close;
        RequestLive := true;
        Open;
        if CanModify then
        begin
          edit; 
          fields[1].asstring := 'modif'; 
          post; 
        end;
      end; 
    end;

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Merci fs999

  9. #9
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    Attention, le résultat d'une requète contenant un ORDER BY n'est jamais modifiable. Quel que soit la BDD.

    Enfin, pas directement. Il faut utiliser le composant UpDateSQL en plus de la requète pour gérer les modifications.

Discussions similaires

  1. Comment ecrire sur la meme ligne avec la commane ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 24/11/2015, 10h06
  2. Ecrire sur plusieurs lignes dans un DBGrid
    Par stfanny31 dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/08/2008, 00h26
  3. Faire un filtre sur un DBGRID
    Par richard038 dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/08/2005, 18h18
  4. Comportement anormal de la tabulation sur une DBGrid
    Par fredfred dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/05/2005, 14h23
  5. Interdire à X d'écrire sur le disque dur, possible ?
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 29/10/2004, 17h50

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