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 :

[D7],[Access],[ADO],enregistrer une erreur dans un fichier log


Sujet :

Bases de données Delphi

  1. #1
    iam
    iam est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Points : 72
    Points
    72
    Par défaut [D7],[Access],[ADO],enregistrer une erreur dans un fichier log
    salut tout le monde, j'ai un programme de consolidation automatique planifié avec taches planifiées de windows, il accede dans un répertoire situé dans un serveur,il décompresse les fichiers envoyés (l'application clientes fait une sauvegarde intégrale de la base de données et la compresse dans un fichier zip, ensuite l'utilisateur envoie la sauvgarde par FTP au serveur FTP au niveau central) et consolide les données dans une base de données centrale, mon problème est que des fois la sauvegarde envoyé n'est pas complète,il est impossible de la décompresser (coromppue),mon programme de consolidation donc s'arrète en m'affichant un msg d'erreur, je veux stocker quand il y a une erreur, la provenance du fichier et la date et d'autre information dans un fichier text que je sauvegarde dans un endroit bien détérminé ou bien de l'envoyer par messagerie à l'administrateur et cela pour etre au courant des fichiers mal reçus,si quelqu'un a dèjà fait ça,je serai très reconnaissant en me montrant la manière de le faire
    merci

  2. #2
    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
    il te faut gérer un Try ... Except ... end et mettre dans la partie Except ... End la génération de ton log.
    Modérateur Delphi

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

  3. #3
    iam
    iam est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Points : 72
    Points
    72
    Par défaut
    merci malatar, si vous permettez de me donnez un exemple comment créer un fichier log et l'enregistrer dans une partition quelconque dans le disque dur, et comment accéder pour le lire par programme, merci infiniment pour votre aide

  4. #4
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Tu peux faire ça toi même ou installer la JVCL et utiliser le composant JVlogFile.
    Quand tu auras installé la JVCL tu verras un exemple dans JvLogFileDemo.

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    vous pouvez utiliser un Tmemo en invisible et utiliser sa fonction SaveToFile.

  6. #6
    iam
    iam est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Points : 72
    Points
    72
    Par défaut
    très bien je vais voir merci

  7. #7
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Le pb à utiliser un TMemo c'est que la sauvegarde écrit le fichier en entier donc il faut le faire à la fin du programme mais dans ce cas un plantage en plein programme => on pert tout.
    De plus plutot qu'utilser un TMemo en invisible autant utiliser directement une tstringList...

  8. #8
    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
    Voici la procédure que j'utilise le plus souvent pour mes logs

    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
     
    procedure CreateLogFile(sFilename,sText : String);
    var
      FText : TextFile;
      sFile, sDir : String;
    begin
      try
        // Met dans sDir Le chemin du logiciel/log/Année/mois
        sDir := ExtractFilePath(Application.ExeName) + 'log\' + FormatDateTime('YYYY',Now) + '\' +
                FormatDateTime('MM',Now) + '\';
        // Créer le répertoire s'il n'existe pas
        if not DirectoryExists(sDir) then
          ForceDirectories(sDir);
        sFile :=sDir + sFileName;
        AssignFile(FText,sFile);
        if FileExists(sFile) then
        // Si le fichier existe on le met en mode édition
          Append(FText)
        else
         // Sinon on créer le fichier 
          ReWrite(FText);
        try
          // ajout de la ligne au fichier
          Writeln(FText,Trim(sText));
        finally
          Closefile(FText);
        end;
      Except on E:Exception do
        begin
          // erreur de lecture/ecriture
          if IOResult = 32 then
            // On relance la création du fichier 
            CreateLogFile(sFileName,sText)
          else
            // sinon affichage de l'erreur
            ShowMessage(E.Message);
        end;
      end;
    end;
    Modérateur Delphi

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

  9. #9
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par philnext
    Le pb à utiliser un TMemo c'est que la sauvegarde écrit le fichier en entier donc il faut le faire à la fin du programme mais dans ce cas un plantage en plein programme => on pert tout.
    De plus plutot qu'utilser un TMemo en invisible autant utiliser directement une tstringList...
    bien vu . sinon on aura le log si tous va bien

  10. #10
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Pour info, il y'a une suite de composants Log4Delphi adapté de Log4J (composants pour manipuler des log de Java) adapté au goût des Delphistes

    Site Web : http://log4delphi.sourceforge.net/

    C'est relativement facile à utiliser au cas où cà t'interesserait !

Discussions similaires

  1. Enregistrer une table dans un fichier .xls
    Par kmaniche dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/10/2006, 10h59
  2. enregistrer une timagelist dans un fichier
    Par OutOfRange dans le forum Delphi
    Réponses: 8
    Dernier message: 04/10/2006, 09h27
  3. Enregistrer une image dans un fichier XML
    Par MiJack dans le forum Delphi
    Réponses: 12
    Dernier message: 24/05/2006, 11h24
  4. enregistrer une donnee dans un fichier txt
    Par zorglub88 dans le forum MFC
    Réponses: 33
    Dernier message: 27/01/2006, 16h13
  5. Comment enregistrer une string dans un fichier
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/09/2005, 15h52

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