Mise à jour de fichiers HF CS avec des fichiers HF classic
3 réponses
nicologvi
Bonjour amis d=E9veloppeurs,
J'ai une question =E0 vous soumettre afin de trouver la meilleure m=E9thode=
pour mettre =E0 jour la base de donn=E9es Hyperfilesql CS depuis des fichi=
ers HF classic.
Jusqu'=E0 pr=E9sent la m=E9thode utilis=E9e =E9tait 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=E9claration externe du fichier =E0 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) =09
HSupprimeTout(tmp_fichier_base)
HG=E8reDoublon(tmp_fichier_base,"*",Faux)
POUR TOUT fExtraitChemin(UnFichier,fFichier)+"_B2W"
HCopieEnreg(tmp_fichier_base,fExtraitChemin(UnFichier,fFichier)+"_B2W")
HAjoute(tmp_fichier_base)
FIN
HFerme(fExtraitChemin(UnFichier,fFichier)+"_B2W")
HAnnuleD=E9claration(fExtraitChemin(UnFichier,fFichier)+"_B2W")
---------------------------------------------------------------------------=
----------------------------------------------------------
Cette solution fonctionne mais est extr=EAmement chronophage d=E8s lors que=
les fichiers d=E9passent une certaine taille.
voici les solutions envisag=E9es, j'aurais aim=E9 avoir vos avis:
1 - Arr=EAt du serveur HF CS (via le service manta), copie des fichiers da=
ns le r=E9pertoire BDD des nouveaux fichiers qui =E9crasent les anciens, re=
d=E9marrage du serveur HF CS=20
2- Utilisation du Fcopiefichier mais si les fichiers sont bloqu=E9s ce n'es=
t pas possible et je ne connais pas la solution pour deconnecter tous le mo=
nde du serveur de fichier bloquer le serveur pour mon traitement et le d=E9=
bloquer pour le rendre de nouveau accessible.
3- la r=E9plication mais c'est quand m=EAme super lourd elle a peut-=EAtre =
=E9volu=E9e depuis les deconvenues rencontr=E9es quelques ann=E9es en arri=
=E8re...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fredo
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 :
Bonjour amis développeurs,
J'ai une question à vous soumettre afin de trouver la meilleure méthode pour 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(UnFichier,fFichier)+"_B2W") HAjoute(tmp_fichier_base) FIN HFerme(fExtraitChemin(UnFichier,fFichier)+"_B2W") HAnnuleDéclaration(fExtraitChemin(UnFichier,fFichier)+"_B2W") -------------------------------------------------------------------------------------------------------------------------------------
Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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
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 :
Bonjour amis développeurs,
J'ai une question à vous soumettre afin de trouver la meilleure méthode pour 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(UnFichier,fFichier)+"_B2W")
HAjoute(tmp_fichier_base)
FIN
HFerme(fExtraitChemin(UnFichier,fFichier)+"_B2W")
HAnnuleDéclaration(fExtraitChemin(UnFichier,fFichier)+"_B2W")
-------------------------------------------------------------------------------------------------------------------------------------
Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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...
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 :
Bonjour amis développeurs,
J'ai une question à vous soumettre afin de trouver la meilleure méthode pour 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(UnFichier,fFichier)+"_B2W") HAjoute(tmp_fichier_base) FIN HFerme(fExtraitChemin(UnFichier,fFichier)+"_B2W") HAnnuleDéclaration(fExtraitChemin(UnFichier,fFichier)+"_B2W") -------------------------------------------------------------------------------------------------------------------------------------
Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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
nicologvi
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
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
dinactivité suffisamment longue.
Bon dev
Fred.
Ps : passe le bonjour à ton paternel :)
Le 31/07/2013 10:30, nicologvi a écrit :
> Bonjour amis développeurs,
>
> J'ai une question à vous soumettre afin de trouver la meilleure mét hode pour mettre à jour la base de données Hyperfilesql CS depuis des f ichiers 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
> Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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 fichier s 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 l e 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 a rrière...
>
> Merci pour vos réponses éclairées...
>
> Nicolas Logvinenko
>
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
Nico
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
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
dinactivité suffisamment longue.
Bon dev
Fred.
Ps : passe le bonjour à ton paternel :)
Le 31/07/2013 10:30, nicologvi a écrit :
> Bonjour amis développeurs,
>
> J'ai une question à vous soumettre afin de trouver la meilleure mét hode pour mettre à jour la base de données Hyperfilesql CS depuis des f ichiers 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
> Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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 fichier s 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 l e 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 a rrière...
>
> Merci pour vos réponses éclairées...
>
> Nicolas Logvinenko
>
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 ?
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
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
dinactivité suffisamment longue.
Bon dev
Fred.
Ps : passe le bonjour à ton paternel :)
Le 31/07/2013 10:30, nicologvi a écrit :
> Bonjour amis développeurs,
>
> J'ai une question à vous soumettre afin de trouver la meilleure mét hode pour mettre à jour la base de données Hyperfilesql CS depuis des f ichiers 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
> Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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 fichier s 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 l e 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 a rrière...
>
> Merci pour vos réponses éclairées...
>
> Nicolas Logvinenko
>
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
Nico
Fredo
Le 13/08/2013 15:56, nicologvi a écrit :
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
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 :
Bonjour amis développeurs,
J'ai une question à vous soumettre afin de trouver la meilleure méthode pour 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
Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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
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
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.
Le 13/08/2013 15:56, nicologvi a écrit :
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
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 :
Bonjour amis développeurs,
J'ai une question à vous soumettre afin de trouver la meilleure méthode pour 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
Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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
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@gmail.com
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.
Le lundi 5 août 2013 08:49:36 UTC+2, Fredo a écrit :
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 :
Bonjour amis développeurs,
J'ai une question à vous soumettre afin de trouver la meilleure méthode pour 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
Cette solution fonctionne mais est extrêmement chronophage dès lors que les 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
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
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.