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

Delphi Discussion :

Séléctionner une ligne dans DBGRID


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut Séléctionner une ligne dans DBGRID
    Bonjour,
    J'ai un problème pour séléctionner une ligne dans DBGRID que je viens d'insérer dans la base (CAD: Quand je fais le refresh dans dataset/dbgrid, alors, il récupère toutes les lignes enregistrées dans la base et puis, je veux qu'il point sur la ligne que je viens d'insérer.
    Voici mon code:

    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
     
    procedure TForm3.BitBtn1Click(Sender: TObject);
    begin
    with IBquery2 do
    begin
     IBQuery2.SQL.Clear;
     IBQuery2.sql.add('insert into MATAB (N, Nom, Prnom) values (:p1, :p2, :p3) ');
     
     IBQuery2.parambyname('p1').value := edit1.text;
     IBQuery2.parambyname('p2').value := edit2.text;
     IBQuery2.parambyname('p3').value := edit3.text;
     
      try execSQL;
      except  showmessage('erreur');
      end;
     
      IBQuery3.SQL.Clear; //Efface le contenu de la stringlist
      IBQuery3.SQL.Add('SELECT * from MATAB order by N');
      IBQuery3.Open; //Active la requête
     
    edit1.Clear;
    edit2.Clear;
    edit3.Clear;
    edit1.SetFocus;
    end;
    end;

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 137
    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 137
    Par défaut
    Faudrait faire un Locate

    Si N est ton ID unique, tu fais un locate sur N

    Si N n'est pas ton ID unique, regarde si ton INSERT INTO est capable de retourner l'ID (@@IDENTITY, RETURNING ... INTO)
    tu pourrais retrouver la ligne facilement

    Enfin, si tu n'a pas d'ID unique, refaire un Locate (N, Nom, Prnom) avec les risques de doublon


    J'espère que tu n'affiches pas des milliers de ligne dans une grille depuis MATAB, cela sera contre-performant
    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

  3. #3
    Membre actif
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Faudrait faire un Locate

    Si N est ton ID unique, tu fais un locate sur N

    Si N n'est pas ton ID unique, regarde si ton INSERT INTO est capable de retourner l'ID (@@IDENTITY, RETURNING ... INTO)
    tu pourrais retrouver la ligne facilement

    Enfin, si tu n'a pas d'ID unique, refaire un Locate (N, Nom, Prnom) avec les risques de doublon


    J'espère que tu n'affiches pas des milliers de ligne dans une grille depuis MATAB, cela sera contre-performant
    MERCI ça a marché avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     IBQuery3.Locate('N',VarArrayOf([Edit1.Text]),[]) ;

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/04/2015, 08h56
  2. rechercher une ligne dans DBGrid
    Par nabilissa dans le forum Bases de données
    Réponses: 5
    Dernier message: 07/10/2010, 23h54
  3. Séléctionner une ligne dans le DBgrid
    Par And_res dans le forum Débuter
    Réponses: 1
    Dernier message: 07/10/2008, 11h09
  4. comment changer la couleur d'une ligne dans dbgrid?
    Par dj_techno dans le forum Composants VCL
    Réponses: 5
    Dernier message: 06/10/2008, 09h25
  5. comment accéder a une ligne dans DBGrid
    Par Invité(e) dans le forum C++Builder
    Réponses: 1
    Dernier message: 03/05/2008, 12h48

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