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 :

Service et getlocaleformatsettings


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Par défaut Service et getlocaleformatsettings
    Bonjour à tous,

    petit problème, je décris :

    j'ai écris un petit programme (TService) qui prend des données sous forme de fichier (déposés par ftp) et les intégres dans une base de donnée Firebird.

    Le service est installé et tout fonctionne parfaitement jusqu'à ce que je reboot le serveur.

    Après le reboot, le service se lance (startup type = automatique), mais les mise à jours dans la base de donnée ne se font plus, car le format de date est mm/dd/aaaa.

    Si je me connect au serveur et que je relance le service manuellement (stop - start), le format de date revient à dd.mm.aaaa, et tout fonctionne.

    J'utilise le code suivant pour initialiser les paramètres de format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var
      FormatSettings : TFormatSettings;
     
      GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatSettings);
      FormatSettings.DateSeparator:='.';
      FormatSettings.ShortDateFormat :='dd.mm.yyyy';
    et pour la convertion en string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable_string := DateTimeToStr(Now,FormatSettings);
    Il est à noter, que "Now" retourne la date et l'heure TU après le reboot et la date et l'heure locale après un restart manuel.

    Toutes les (bonnes) idées sont bienvenues.

    Salutations.

  2. #2
    Membre émérite Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Par défaut
    Bonjour,

    Sous windows tous est service.
    Il s'agit d'un problème d'ordre de lancement des services (Options régionales).

    Je n'ai pas non plus résolu ce pb - en l'occurence moi je devai attendre que FireBird soit lancé pour me connecter à ma base.

    Donc ce que j'ai fait, c'est de déporter une partie du code de ServiceStart dans une méthode InitStart appelé au premier besoin et seulement au premier besoin.

    FirstLancement est un Boolean mis a vrai sur ServiceStart

    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
    procedure TeMyService.TimerLectureTimer(Sender: TObject);
    Var
      SearchRec : TSearchRec;
      FName     : String;
    begin
    
      if (FindFirst(Param.Masque_Recherche, faAnyFile, SearchRec) = 0) then
      try
        If FirstLancement then
        try
           InitStart;
        finally
           FirstLancement := False;
        end;
    
       try
    
    
    .....
    Voilà

    a+

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 158
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 158
    Par défaut
    Salut !

    Quand on examine les services depuis la console de management, on constate qu'il y a une notion de "dépendances" de services les uns par rapport aux autres.
    Ne faudrait-il pas creuser par là ?
    Pseudo-code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If MyService dépend_de(un_service_précis) then
      wait_until(un_service_précis, IsRunning)
    Enfin, c'est une idée...
    Mes 2 cts,
    --
    jp

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Par défaut
    Solution :

    ne pas oublier de traiter les heures !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FormatSettings.DateSeparator:='.';
      FormatSettings.ShortDateFormat :='dd.mm.yyyy';
      FormatSettings.TimeSeparator:=':';
      FormatSettings.ShortTimeFormat:='hh:mm';
      FormatSettings.LongTimeFormat:='hh:mm:ss';
    C'est tellement gros que pas vu

    Salutations à tous et merci pour les réponses.

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

Discussions similaires

  1. Quel est l'intérêt des Services Web ??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 19
    Dernier message: 12/02/2003, 22h28
  2. naming service
    Par manuel dans le forum CORBA
    Réponses: 6
    Dernier message: 09/12/2002, 17h43
  3. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 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