1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2008
    Messages : 81
    Points : 46
    Points
    46

    Par défaut HDateEnreg() en Client/Serveur

    Bonjour à tous !

    J'ai un petit soucis, je souhaite connaître la date de modification d'un fichier de données en C/S. Il y a effectivement la fonction HDateEnreg() mais elle ne fonctionne pas en C/S, j'ai l'impression qu'il effectue la recherche non pas sur mon serveur mais en local sur ma machine ce que je ne veaux bien évidemment.

    Voici les différentes étapes que j'utilise :

    1) HChangeConnexion()
    2) HChangeRép() car mes fichiers de données se trouvent dans un autre dossier mais à la racine du dossier principal, exemple :

    UnFichier.FIC
    UnDossier >> UnAutreFichier.FIC

    3) HDateEnreg() --> Ici, si je souhaite connaitre la dernière modif du fichier "UnAutreFichier.FIC" cela ne marche pas, je n'ai pas de date

    La syntaxe : HDateEnreg("UnDossier\UnAutreFichier")

    En vous remerciant à tous d'avance pour votre aide.

    Cordialement.

  2. #2
    Membre éprouvé
    Inscrit en
    avril 2008
    Messages
    1 080
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 1 080
    Points : 1 208
    Points
    1 208

    Par défaut fdate() avec paramètre fAccès

    Bonjour Jb1

    La fonction fdate (opérant sur tout type de fichiers) avec le paramètre fAccès pourrait-elle convenir ?

    Bon DEV

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    1 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 661
    Points : 3 467
    Points
    3 467

    Par défaut

    La fonction hDateEnreg() fait autre chose. Elle renvoie la date de modification d'un enregistrement précis ; pour un fichier donné, si ce fichier contient 1000 lignes, on a donc potentiellement 1000 valeurs différentes pour hDateEnreg, et il faudrait récupérer la plus grande de ces 1000 valeurs. Et hDateEnreg() renvoie squelque chose uniquement si on dit quel enregistrement on veut consulter.
    Dans la doc, rien ne dit que hDateEnreg ne fonctionne pas en CS, et ce serait surprenant.

    L'alternative, c'est hVersion. Ca ne donne pas une date, mais ça permet de voir si ce numéro a changé entre 2 instants.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    juin 2017
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : juin 2017
    Messages : 245
    Points : 390
    Points
    390

    Par défaut

    Bonjour,
    Tu peut aussi te bidouiller une journalisation minimum que tu rempliras via un trigger
    A la volée :
    Dans l'initialisation de ton projet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HDécritTrigger("*","HModifie,HSupprime,HRaye,HAjoute,HEcrit","MonJournal",hTriggerAprès)
    En procédure globale:
    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
     
    FONCTION MonJournal():entier
     
    nHandleJournal est un entier
    nTailleJournal est entier
    sEtatModification est chaîne
     
    nHandleJournal=fOuvre(fRepDonnées+"\MonJournal.Txt",foCréationSiInexistant)
    SI nHandleJournal=-1 ALORS
    	RENVOYER -1
    SINON
    	nTailleJournal=fTaille(nHandleJournal)
    	SI fPositionne(nHandleJournal,nTailleJournal,fpDébut)=-1 ALORS
    		RENVOYER -1
    	FIN
    FIN
     
    sEtatModification=H.NomFichier+TAB
    SELON Majuscule(H.FonctionTrigger)
    	CAS "HAJOUTE"
    		sEtatModification+="Ajout"
    	CAS "HMODIFIE"
    		sEtatModification+="Modification"
    	CAS "HSUPPRIME"
    		sEtatModification+="Suppression"
    	CAS "HRAYE"
    		sEtatModification+="Rayage"
    	CAS "HECRIT"
    		sEtatModification+="Ecriture"
    FIN
    sEtatModification+=TAB+DateVersChaîne(DateDuJour())+" "+HeureVersChaîne(HeureSys())
     
    SI PAS fEcritLigne(nHandleJournal,sEtatModification) ALORS
    	RENVOYER ErreurInfo(errCode)
    SINON
    	RENVOYER 0
    FIN
    Je n'ai pas eu le temps de tester, mais l'idée est là

    Edit : Test effectué en Ajout, résultat OK
    Il y a peut être plus simple, mais ça tourne

Discussions similaires

  1. Web contre client/serveur que choisir??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 41
    Dernier message: 24/01/2004, 16h53
  2. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 15h57
  3. Réponses: 2
    Dernier message: 01/10/2002, 13h25
  4. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 17h58
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 16h46

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