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 :

parcour d'une table et calcul date?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Points : 89
    Points
    89
    Par défaut parcour d'une table et calcul date?
    salut
    j'utilise delphi 5 pour faire une petite application de gestion des congé pour des employés avec une connection ADO à une table access contenant(nom,prénom,date_de_debut,date_de_fin,duree),bon je cherche :
    - comment pourcourir ma table ligne par ligne
    - comment calculer "date de fin - date de debut" et mettre le resultat dans "duree" ligne par ligne pour chaque employé

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Points : 183
    Points
    183
    Par défaut
    il me semble que dans le composant Ttable il y ait quelque chose du genre count et une autre fonction next. suffit que tu mettes l'index sur le premier enregistrement et qu'avec un for tu fasses des next successifs. tu peux traiter les dates avec les fonctions de dates. Ca fait longtemps que j'ai pas toucher a ça, mais je sais plus quel composant permet de récupérer les données sous plusieurs formats. Sinon, utilises les fonctions de dates delphi.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Salut

    Citation Envoyé par dj_techno
    - comment pourcourir ma table ligne par ligne
    facile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    table.first;
    while not table.Eof do
      table.Next;
    Citation Envoyé par dj_techno
    - comment calculer "date de fin - date de debut" et mettre le resultat dans "duree" ligne par ligne pour chaque employé
    facile aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    table.first;
    while not table.Eof do
    begin
      table.Edit;
      table.FieldByName('duree').Value := 
            table.FieldByName('date_de_fin').Value - table.FieldByName('date_de_debut').Value
      table.Post;
      table.Next;
    end;

  4. #4
    Membre habitué Avatar de maamar1979
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Points : 134
    Points
    134
    Par défaut
    salam;
    pour ce faire je te propose de supprimer le champ "duree", c'est un champ calculer et c'est valeur peuvent être retouver à tt moment à travers les autre champ (un peut de modele relationnel te fera le plus grand bien). tu remplace ce champs par un autre calculer que tu cree sur le composant table (ou query).

    pour ton calcule utilise plutot OnCalcFields du composant utiliser, ca t'evitera de parcourir ta table ligne par ligne (ce ki deviens tres lent pour des table qui depasse les 500 lignes).
    On fait tous les X choses nécessaires pour avoir comme résultats un Y, finalement c'est Z qu'on obtiens : c'est le destin.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Points : 89
    Points
    89
    Par défaut
    salut
    en fte c trés simple je l'ai déja trouvé par vos aides c tout simplement de parcourir la table et tester sur sa fin

    puis pour avoir la date dans un champ bien définie c avec fields ensuite affecter chaque date dans une variable et faire un simple soustraction entre c deux variables pour avoir le nombre de jour et le réaffecte à un autre champs comme cet exemple lindique de mon code:

    while not ADOTableetat.Eof do begin
    adotableetat.edit;
    date1:=adotableetat.fields[6].AsDateTime;
    date2:=adotableetat.fields[5].AsDateTime;
    adotableetat.fields[4].AsCurrency:=date1-date2+1;
    adotableetat.post;
    ADOTableetat.Next;
    end;

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/07/2014, 15h28
  2. Réponses: 2
    Dernier message: 08/07/2013, 13h39
  3. [JSP]erreur dans parcours d'une table
    Par lcoder dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/07/2006, 09h52
  4. D7/firebird 1.5 - parcours d'une table
    Par jer64 dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/03/2006, 22h27
  5. Alimentation d'une table de dimension date
    Par kluh dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/07/2005, 14h34

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