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 :

numéro automatique d'un champ


Sujet :

Bases de données Delphi

  1. #21
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 455
    Points : 5 900
    Points
    5 900
    Par défaut
    salut

    il faut lui y attacher un composant Tupdatesql ou gere soit meme la mise a jour

    @+ Phil

  2. #22
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    nous avons une boucle(liée à un boutton) qui post les enregistrements des classements des étudiants suivant leur moyenne(du plus grand au plus petit).comment lui y attacher un composant Tupdatesql qui gère soit même la mise a jour ?parceque j'ai essayé est je n'est pas trouvé de solution avec Tupdatesql .

  3. #23
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 455
    Points : 5 900
    Points
    5 900
    Par défaut
    salut

    la query doit etre attache au tupdatsql par la propriete updateobjet
    je suppose que le champs classement fait parti d'une table ou est ce un champs calculer ?

    @+ Phil

  4. #24
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    resalut;
    oui le champs "classement" fait parti de la table "Edudiants".

  5. #25
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 402
    Points : 2 310
    Points
    2 310
    Par défaut
    Re Nabil;

    voilà ma suggestion, crée un autre champ type numérique et essai le code source avec, histoire de voir la réaction de ton appli si tout marche bien alors tu as un problème avec le champ classement.

  6. #26
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par NABIL74 Voir le message
    merci encore à toi Just-Soft
    j'ai testé le code sur une Table et il marche à merveille mais le problème se situe au niveau de la requête.il est impossible de modifier les résultats de la requête?
    Revenons à l'objectif principal :
    Quel est-il ?
    1. Modifier le contenu de la requête pour créer un rapport sans modifier la table, et une fois le rapport créé, on détruit la requête sans mettre à jour les tables ?
    2. Modifier le contenu de la requête pour mettre à jour les tables ?


    La démarche sera différente suivant ce que tu désires.

    Dans le premier cas, la query étant en READ ONLY, tu pourrais la dupliquer dans un TDataset et ensuite travailler sur le TDataset avec le bout de code que je t'ai indiqué précédemment, dans l'autre, il faudra boucler sur une requête SQL "UPDATE".

  7. #27
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    bonjour Just-Soft,
    j'ai créer un autre champ de type numérique mais j'ai toujours le même message: "Query_classement:impossible de modifier un ensemble de données en lecture seule".
    j'ai essayé la boucle sur une table(sans prendre compte du tri du classement de chaque étudiant) et ça marche nickel!
    Y at-il un moyen de modifier le résultat d'une requête liée à cette boucle?
    merci encore

  8. #28
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    salut Le Lézard ;
    l'objectif principal est:
    1-tri de la moyenne des étudiants(du plus grand au plus petit suivant sa moyenne).
    2-modifier les résultats obtenus et mettre à jour la table(poster le classement de chaque étudiant dans la table "Etudiants".
    ex:

    1---Albert Loront--- 6°---15.23---classement:"5"
    2---Tony Faudin--- 6°---16.15---classement:"2"
    3---Charles Samon---6°---17.25---classement:"1"
    .
    .

  9. #29
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    Voici un bout de code (non testé) qui répond à ton besoin...

    Le principe est simple : Tu fais une requête (QRY_S) qui te retourne pour chaque classe les étudiants ordonnés du meilleur au moin bon.
    Tu parcours ensuite le résultat de cette requête et tu ajoutes 1 au classement à chaque éléve d'une même classe avant d'envoyer une requête (QRY_U) qui met à jour le champ CLASSEMENT pour l'étudiant en question (grace à son ID). Dès que tu changes de classe, tu remets le classement à 1 et rebelotte...

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    procedure MaJ_Classement;
    Var Qry_S      : TQuery;   // Requête "SELECT"
        Qry_U      : TQuery;   // Requête "UPDATE"
        Cur_Rang   : Integer;
        Cur_Classe : String;
        Cur_Id     : Integer;
    begin
      Qry_S := TQuery.Create(nil);
    //-------------------------------------------------------------------
    // Insérer ici les paramètres de connexion du TQUERY au SGBD
    //-------------------------------------------------------------------
      Qry_S.SQL.Clear;
      Qry_S.SQL.Add('SELECT etu_id as id, etu_classe as classe, etu_moyenne as moyenne ');
      Qry_S.SQL.Add('FROM etudiants ');
      Qry_S.SQL.Add('ORDER BY etu_classe, etu_moyenne DESC');
      Qry_S.Active := true;
      If Qry_S.RecordCount > 0 then Begin
         Qry_U := TQuery.Create(nil);
         //-------------------------------------------------------------------
         // Insérer ici les paramètres de connexion du TQUERY au SGBD
         //-------------------------------------------------------------------
         Qry_S.First;
         // Boucle sur les classes
         While not Qry_S.Eof do Begin          
            Cur_Classe :=Qry_S.FieldByName('classe').AsString;
            Cur_Rang := 1;
            // Boucle sur les étudiants
            While (Qry_S.FieldByName('classe').AsString = Cur_Classe) and (not Qry_S.Eof) do begin 
               Cur_Id := Qry_S.FieldByName('id').AsInteger;
               Qry_U.SQL.Clear;
               Qry_U.SQL.Add('UPDATE etudiants SET classement = '+IntToStr(Cur_Rang)+' ');
               Qry_U.SQL.Add('WHERE etu_id = '+IntToStr(Cur_Id));
               Qry_U.ExecSQL;
               Qry_S.Next;
               Inc(Cur_Rang);
            end; // Fin de boucle étudiants
         end; // Fin de boucle classes
         Qry_U.Close;
         Qry_U.Free;
      end; //If Qry_S.RecordCount > 0
      Qry_S.Close;
      Qry_S.Free
    end;

  10. #30
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    ça marche nickel!
    je connaisais pas cette procédure avant.
    un grand merci à vous tous d'être penché sur mon cas et d'avoir eu le temps de me répondre.D'ailleurs c'est le point fort de ce grand Forum.Encore merci!

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

Discussions similaires

  1. Réponses: 30
    Dernier message: 17/11/2012, 17h42
  2. numéro automatique d'un champ
    Par NABIL74 dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/12/2008, 11h28
  3. Réponses: 14
    Dernier message: 17/10/2005, 10h41
  4. Numéro automatique avec PostgreSql
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/09/2005, 23h55
  5. pb de numéro automatique
    Par Little-Freud dans le forum Access
    Réponses: 1
    Dernier message: 26/10/2004, 23h28

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