Ancestrologie - Plugins et Outils > MutAncestre

Mutancestre, outil de transfert de dossier Ancestrologie.

(1/17) > >>

DDdeBerdeux:
Au sujet de la mise en conformité de l'export/import gedcom d'Ancestrologie, je disais l'autre jour que lorsqu'on n'avait pas de pelleteuse, on pouvait déplacer un tas de terre (le sable serait plus approprié en cette saison), avec une pelle. Sur le même sujet, j'ajouterai aujourd'hui que si on ne peut pas franchir un mur, on peut essayer d'en faire le tour.

Beaucoup d'utilisateurs d'Ancestrologie n'en utilisent pas toutes les possibilités, parce qu'ils ne pourront pas récupérer certaines informations, ni dans un autre logiciel, ni dans Ancestrologie lui-même, la seule solution de transfert existante, l'export/import par gedcom étant défaillante.

Je pense aussi que la norme est avant tout un moyen d'assurer le transfert de toutes les informations "normalisées" entre différents logiciels (et pour cette raison Ancestrologie devrait la respecter). Mais que malgré sa "souplesse", elle n'est pas obligatoirement adaptée au support d'informations spécifiques à chaque logiciel.

On peut ensuite se demander s'il est très logique, pour transférer un dossier ancestrologie dans un autre dossier ancestrologie, de passer par un fichier exporté dans un format différent de l'original, qu'il faudra ensuite retransformer lors de l'importation.

J'en ai donc conclu qu'il serait intéressant de développer une application, si possible intégrée à Ancestrologie, capable d'importer dans un dossier, le contenu d'un autre dossier, de la même ou d'une autre base Ancestrologie.

Ne connaissant ni n'ayant Delphi, j'ai d'abord fait une application en Objectpal sous Paradox. Elle marchait bien mais avec des défauts dûs aux limites de Paradox. J'ai demandé à quelques développeurs en Delphi, s'ils pouvaient la transférer sous ce logiciel. Devant leur absence de disponibilité, j'ai téléchargé, appris et encodé cette application avec Lazarus, environnement open source qui veut concurencer Delphi.

Ceux qui veulent l'essayer et l'utiliser peuvent la télécharger Mutancestre.

Mais avant toute chose, je tiens à vous prévenir qu'à mon grand regret, elle ne fonctionne pas sous la version de Firebird embedded livrée avec Ancestrologie. Il faut utiliser la version serveur de Firebird. Ce n'est pas pour faire de l'élitisme. J'ignore si celà vient de Lazarus, du compilateur Free Pascal, des composants utilisés ou de Firebird embedded lui-même. J'ai essayé plusieurs solutions sans parvenir à résoudre ce problème.

Pour l'installation, vous pouvez copier la fichier importation.exe où vous voulez, je conseillerai dans le même répertoire qu'Ancestrologie, avec un raccourci dans le menu d'Ancestro, mais sans obligation.

Normalement à l'ouverture, vous devriez avoir çà:



En cliquant sur le mot "Informations..." en bas à droite, vous avez accès à quelques informations supplémentaires.

J'espère que les mots "Source" et "Cible" sont assez clairs.

A mon avis, mais je n'ai pas fait de test à ce sujet, çà doit marcher correctement à partir d'une base source de version b3.57 ou supérieure.

Pour la base cible, utilisez la version b4.036 que je viens de mettre en ligne. Elle corrige certaines anomalies que j'ai justement constatées lors des tests de transfert de dossier. De plus les champs "calculés" par la base ne sont pas transférés par l'application, la base se chargant de les mettre à jour. Il est donc nécessaire d'en utiliser la dernière version.

Dans le champ "Base source" en cliquant sur la petite icône à sa droite, vous pouvez choisir le fichier dans une fenêtre explorateur. Vous pouvez également y taper le nom de votre base.

Pour mémoire je rappellerai que ce nom peut prendre plusieurs formes:

Si le serveur est local (sur votre machine), ce peut être soit le nom complet (C:\Program Files\Ancestrologie\Database\ANCESTROLOGIE.BDD) soit un nom d'alias.

Si le serveur est distant, ce nom doit être précédé de l'adresse (IP ou URL) et du symbole ":".

Les alias doivent être déclarés dans le fichier aliases.conf du serveur. Un paramètre de firebird.conf permet même (pour des raisons de sécurité), d'interdire les accès à des bases autrement que par un alias déclaré.

Ils peuvent être utilisés directement dans ce logiciel d'importation. Ancestrologie peut également les utiliser, à condition d'utiliser la connection "réseau". Dans ce cas, l'adresse à utiliser si le serveur est local est alors 127.0.0.1 ou localhost . L'utilisation des alias est souvent plus rapide que la recherche dans l'explorateur, et il n'y a pas à se souvenir de l'emplacement exact, ce qui est difficile en particulier sur un serveur réseau. Les seuls inconvénients que je leur connaisse, c'est que la fonction "Optimisation de la base" d'Ancestrologie ne fonctionne pas avec.

Après avoir sélectionné une base, il faut cliquer sur le bouton connecter à sa droite pour voir apparaître la liste des dossiers existants dans cette base. La premier dossier est sélectionné par défaut. On peut en sélectionner un autre dans la liste déroulante.

La liste et le nombre des individus du dossier apparaît en dessous.

On fait la même chose pour la base et le dossier cible.

Il suffit ensuite de cliquer sur le bouton "Importer".

Les messages d'importation défilent dans la barre d'état.

A la fin la liste des individus à importer se vide et celle des individus du dossier cible se met à jour.

Normalement tout le dossier source est ajouté au dossier cible, sans perte.

Pour supprimer une importation, utilisez la fonction de suppression d'un import gedcom d'Ancestrologie. Je rappelle juste que si entre temps vous avez créé un lien entre un individu importé et les autres, lui et tous ceux qui lui sont liés (parents enfants témoins etc...) ne seront pas supprimés.

Lors du transfert, il est fait un contrôle de cohérence dans le sens informatique. On ne tranfert pas les enregistrement orphelins (un eve sans individu, un media_record sans média, une union avec un un individu non null qui n'existe pas, un évènement sans individu ou sans union par exemple). C'est donc un bon moyen de "nettoyer" sa base. Il suffit de prendre pour cible une base vide. De plus çà satisfera ceux que les trous dans la numérotation des individus ou des dossiers dérangeait.

Pour les utilisateurs de QST, la CLE_FIXE subit les mêmes contraintes que lors d'un import gedcom. Elle n'est pas modifiée tant qu'il n'existe pas de code identique dans le dossier.

Il vaut mieux aussi effectuer l'opération, Ancestrologie fermé.

Voilà, j'espère avoir été complet, certains diront trop long, mais vous avez le temps, d'ici mercredi soir :lol:

Bons tests. Si çà marche bien et si çà vous intéresse, on verra avec Philippe s'il est possible d'intégrer cette fonction à Ancestrologie.

A+

André

Réédition du 10/07/2006: l'appli fonctionne maintenant également avec FBembeded et elle a été intégrée dans une procédure d'installation à télécharger InstMutancestre.

Le fichier importation.exe va se copier par défaut dans le répertoire d'Ancestrologie (c'est indispensable pour ceux qui utilisent FBembeded), et un raccourci est ajouté au groupe de démarrage Ancestrologie.

La mise à jour de la base en b4.037 met complètement à jour FBembeded .



Mise à jour du 27/08/2006 L'application a été rebaptisée Mutancestre. Le fichier exécutable s'appelle maintenant Mutancestre.ese. Modifications de présentation mineures.



Mise à jour du 6/09/2006 Mise à niveau pour la base en version b4.049 qui comporte des champs supplémentaires.



Mise à jour du 25/09/2006 Version plus rapide d'environ 30%.

Mise à jour du 6/10/2006 Mise à niveau pour la base b4.052.

Mise à jour du 27/11/2006 V1.8 ajout des boutons pour vider le dossier et la base de destination. http://www.ancestrologie.org/forum/index.php?topic=6258.0&start=50

Mise à jour du 11/01/2007 V1.9.5 http://www.ancestrologie.org/forum/index.php?topic=6258.0&postdays=0&postorder=asc&start=60

Mise à jour du 16/01/2007 V2.0.0 http://www.ancestrologie.org/forum/index.php?topic=6258.0&postdays=0&postorder=asc&start=61

DDdeBerdeux:
Aïe, j'avais oublié de traiter le cas des tables vides. C'est réparé dans la version 1.01.

André

Facon:
Bonsoir André,

J'ai parcouru toutes tes explications et comme je suis en Firebird embedded bien sûr ton application n'est pas ravie.

Comme à un certain moment il m'a été dit que fbclient.dll n'était pas trouvé, j'ai pris sur moi de faire dans le répertoire Ancestrologie une copie de gds32.dll et de le renommer fbclient.dll.



J'ai relancé l'application et j'ai pu choisir une source, une cible et j'ai lancé le transfert. Hormis un petit message d'erreur, j'ai accepté et sans avoir été très loin, il semblerait que le transfert se soit fait convenablement. Le transfert en question était le dossier 1 de PCM, je pense avoir perdu les photos en route.

Il faut probablement aller plus loin dans l'analyse. Avais-tu essayé de sauter le mur plutôt que de le contourner, autrement dit avais-tu essayé cette manip?

La copie dans le dossier 1 de la cible se fait sans problème. Pour aller dans un dossier 2 ou autre, il faut à priori avoir créé au préalable ces dossiers sinon l'application n'est pas contente. Il faut que j'essaye.

DDdeBerdeux:
Cà y est çà marche avec la version embedded.  C'est juste un problème d'identification de la dll. Je paramettrais les connections comme étant à Firebird (c'est normal puisque c'est çà qui est utilisé). Du coup, c'était fbclient.dll qui était recherchée. Et comme Ancestrologie a été créé à l'origine avec Interbase, il utilise gds32.dll. J'ai donc paramètré les connections pour Interbase et çà marche. A condition de mettre le fichier importation.exe dans le répertoire d'Ancestrologie, pour qu'il puisse trouver ce gds32.dll.

Une petite crainte cependant car un fichier fbintl.dll qui fait partie de la version actuelle de FBembedded, n'a pas été mis à jour comme gds32.dll et ib_util.dll depuis la b4.030. Ce fichier se trouve normalement dans les installations avec FBembedded dans le sous-répertoire d'ancestrologie\firebird\intl\ .

A tout hasard, vous pouvez la télécharger fbintl.dll v 1.5.3.4870, mais avant j'aimerai savoir si çà marche avec la version installée. Si non je l'incluerai dans la mise à jour de la base.

Cette version 1.03 de l'application peut être téléchargée ICI. Les autres modifications sont plus "cosmétiques", remplacement de source par origine et de cible par destination qui semblent plus clairs.

Il semble que la longueur du nom de la base, chemin compris, soit limitée sur mon poste, mais apparemment Philippe n'a pas le même problème. Et chez vous?

Il est vrai que je n'ai pas prévu de "création" d'un dossier, car cette application est prévue pour remplacer l'importation. Et dans ce cas, il y a toujours un dossier avant, même s'il est vide. Mais ce sera peut-être intéressant d'ajouter cette fonction, car il est vrai qu'une des principales applications en est la copie simple de dossier. Je l'utilise pour copier un dossier entre le serveur/linux et mon pc, la copie de fichier étant impossible (FB2.0 sur l'un, FB1.5.3 sur l'autre).

Bons tests, et merci aux testeurs.

André

Facon:
Bonsoir André,

A partir de ton dernier message, j'ai repris les tests de la manière suivante:

-1- Elimination de fbclient.dll

-2- Mise en place de l'application v1.03 dans le répertoire Ancestrologie

-3- Préparation d'une base b4.036 avec le dossier 1 qui existe par défaut et création d'un dossier 2

-4- Fermeture d'Ancestrologie



-5- Lancement de l'application, sélection d'une base et chargement du dossier 1 (PCM) vers dossier 1 de la base cible ou destination

-6- Sélection d'une autre base et d'un autre dossier et chargement vers le dossier 2 de la base destination.



L'opération 6 est longue, 10000 individus environ. Mais le transfert se fait et semble correct. Toujours un signal d'erreur au moment de sortir de l'application, j'ai dit "OK" et apparemment sans conséquence.



Dans le transfert du dossier 1 PCM, perte des photos. Dans l'autre dossier il n'y avait pas de photo.

Je travaillais à partir de bases situées dans Ancestrologie\Database.



L'opération a été menée avec la dll fbintl.dll v1.5.2.4731 telle que fournie avec Ancestrologie.



Je crois que c'est bien pour ce soir.

Navigation

[0] Index des messages

[#] Page suivante

Une erreur s'est produite lors du remerciement
Remerciement...
Utiliser la version classique