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 :

ADOQuery


Sujet :

Bases de données Delphi

  1. #1
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut ADOQuery
    Bonjour,

    il parait qu'avec un ADOQuery, après avoir réalisé un INSERT, on peut récuperer l'ID que l'on vient de générer. Si c'est vrai, comment fait on ?

    Merci d'avance
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Cpt Anderson
    Bonjour,

    il parait qu'avec un ADOQuery, après avoir réalisé un INSERT, on peut récuperer l'ID que l'on vient de générer. Si c'est vrai, comment fait on ?

    Merci d'avance
    bonjour
    Si je tu comprend ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    with Adoquery Do
    Begin
      Sql.clear;
      Sql.add('Insert .......');
      Open
      Sql.clear;
      Sql.add('select ID....');
      Open,
    End;

  3. #3
    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
    Soit tu utilses une requete Identity (elle est différente selon le SGBD)
    Soit tu passes par une transaction (Qu'vec certain SGBD)

    Le mieux est de passer par les deux en même temps

    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
    27
    28
    29
    30
    31
     
    With AdoConnection1 do
    begin
      BeginTrans; // Début de la transaction
     
      With AdoQueryInsert do
      begin
        // Ici l'insert
        Try
          ExecSQL;
        Except on E:Exception do
          begin
            RollBackTrans; // On annule le tout
            ShowMEssage(E.MEssage);
            Exit;
          end;
        end;
      end; // with
     
      With AdoQueryIndetity do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Select @Identity as Id from LaTable'); // A vérifier la synthaxe 
        Open;
        LID=FieldByName('id').asInteger
      end; // with
     
      CommitTrans; // On valide l'ensemble
     
    end;
    Modérateur Delphi

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

  4. #4
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut
    Merci, c'est à peu pres ce que j'ai fait: un SELECT@@IDENTITY juste après mon INSERT.

    Merci
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


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

Discussions similaires

  1. ADOQuery SQL update
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/06/2004, 11h00
  2. [ADOQuery]Comment ajouter un prametre a un ADOQuery
    Par bitou dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/04/2004, 15h08
  3. [ADOQuery] Propriété Fields
    Par bitou dans le forum Bases de données
    Réponses: 7
    Dernier message: 21/04/2004, 11h24
  4. Probleme S/ UPDATE : ADOQUERY base = .DBF , D7
    Par bzh56 dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/02/2004, 01h56
  5. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24

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