cerhu > comp.* > comp.developpement.agl.windev

nicologvi (31/07/2013, 10h30)
Bonjour amis développeurs,

J'ai une question à vous soumettre afin de trouver la meilleure méthodepour mettre à jour la base de données Hyperfilesql CS depuis des fichiers HF classic.

Jusqu'à présent la méthode utilisée était la suivante:

1 - Envoi ftp sur le serveur des nouveaux fichiers
2 - dezippage
3 - Suppression de tous les enregistrements du fichier de destination
4 - Déclaration externe du fichier à importer avec un nouveau nom

dans une boucle
5 - copie de l'enregistrement lu
6 - ajout

puis fermeture du fichier d'import

voici le code:

-------------------------------------------------------------------------------------------------------------------------------------
// Importe B2W (Base to Web)
HSupprimeTout(tmp_fichier_base)
HGèreDoublon(tmp_fichier_base,"*",Faux)
POUR TOUT fExtraitChemin(UnFichier,fFichier)+"_B2W"
HCopieEnreg(tmp_fichier_base,fExtraitChemin(UnFich ier,fFichier)+"_B2W")
HAjoute(tmp_fichier_base)
FIN
HFerme(fExtraitChemin(UnFichier,fFichier)+"_B2W")
HAnnuleDéclaration(fExtraitChemin(UnFichier,fFichi er)+"_B2W")
-------------------------------------------------------------------------------------------------------------------------------------

Cette solution fonctionne mais est extrêmement chronophage dès lors queles fichiers dépassent une certaine taille.

voici les solutions envisagées, j'aurais aimé avoir vos avis:

1 - Arrêt du serveur HF CS (via le service manta), copie des fichiers dans le répertoire BDD des nouveaux fichiers qui écrasent les anciens, redémarrage du serveur HF CS

2- Utilisation du Fcopiefichier mais si les fichiers sont bloqués ce n'est pas possible et je ne connais pas la solution pour deconnecter tous le monde du serveur de fichier bloquer le serveur pour mon traitement et le débloquer pour le rendre de nouveau accessible.

3- la réplication mais c'est quand même super lourd elle a peut-être évoluée depuis les deconvenues rencontrées quelques années en arrière...

Merci pour vos réponses éclairées...

Nicolas Logvinenko
Fredo (05/08/2013, 08h49)
Salut,

En théorie, la clé unique sur tes fichiers n'a pas du changer. La
meilleur façon consiste à n'ajouter que les enregistrement n'existant
pas et à ne modifier que les enregistrement dont la date/heure de modif
est supérieure à la date de dernière synchro avec pourquoi pas une
réplication entière une fois par jour/semaine lors d'une période
d’inactivité suffisamment longue.

Bon dev

Fred.

Ps : passe le bonjour à ton paternel :)

Le 31/07/2013 10:30, nicologvi a écrit :
[..]
nicologvi (13/08/2013, 15h56)
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
[..]

Salut Fred,
merci pour ta réponse,
Tu ne penses pas que d'écraser les fichiers
est plus rapide que de parcourir le fichier d'origine
et le fichier de destination pour mettre a jour les deltas ?

Merci.

Pour info j'ai changé de boite...

Mon email direct nicologvi

Nico
Fredo (16/08/2013, 16h29)
Le 13/08/2013 15:56, nicologvi a écrit :
> Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
> Salut Fred,
> merci pour ta réponse,
> Tu ne penses pas que d'écraser les fichiers
> est plus rapide que de parcourir le fichier d'origine
> et le fichier de destination pour mettre a jour les deltas ?
> Merci.
> Pour info j'ai changé de boite...
> Mon email direct nicologvi
> Nico


Salut,

Ecraser les fichiers peut avoir deux conséquences néfastes:

1) Suivant la taille des fichiers cela peut être long
2) Si un des deux fichiers est déjà ouvert par un processus, le
hcopiefichier est impossible et tant qu'a faire une copie
d'enregistrement, autant ne mettre à jour que ceux qui sont nécessaires.

Bon dev,

Fred.
Discussions similaires
Mise à jour de fichiers aspirés avec wget : possible ? sinon comment faire ?

Mise a jour automatique des fichiers avec changement de nom de programme

Help: lire des fichiers AVI avec Media Player Classic

mise a jour fichiers


Fuseau horaire GMT +2. Il est actuellement 02h39. | Privacy Policy