Cà y est c'est fait, j'ai mis sur le forum "Développement" sujet "Corrections et améliorations des procédures stockées", une requête modifiant 2 triggers. Avant enregistrement, il est vérifié que la nouvelle CLE_FIXE n'existe pas déjà, si elle existe on en cherche une libre à partir de 1.
Ceux qui ont IBOConsole peuvent l'exécuter pour mettre à jour la base (les triggers, pas les clés en double!), après la sauvegarde de rigueur. Ne le faîtes pas avec le BOA, çà plante même Ancestrologie!
Pour mettre à jour les données, si vous n'avez pas des dizaines de doublons, le plus simple est d'en faire la liste avec la requête vu hier, puis de les modifier par la fiche un à un. Vous pouvez mettre systématiquement 1 comme nouveau N°, le trigger le modifiera s'il existe déjà. D'ailleurs PCM avait déjà pensé à cette attribution de N° en double lors de la modification (une fenêtre à laquelle vous pouvez répondre oui, le signale), mais apparemment pas lors de la création.
L'avantage de ces triggers, c'est qu'ils interviennent systématiquement, même si le programmeur a oublié le contrôle dans son code. L'inconvénient c'est que comme ils interviennent directement sur l'enregistrement dans la base, pour voir les données réelles à l'écran il faut forcer la relecture des données de la base, en passant à une autre fiche et en y revenant par exemple. Un bouton "Actualiser" dans la fiche serait bien pratique.
Un autre inconvénient qu'il vaut mieux connaître, c'est que lors d'une importation, on ne peut savoir si le N° a été modifié. Ainsi si des N° sont en double dans votre gedcom, le deuxième dans l'ordre de l'importation sera modifié. Cà peut être gênant s'il sert de lien avec Quisontils. Donc il vaut mieux les corriger avant d'exporter en gedcom.
De même si vous faîtes une importation gedcom sur un dossier déjà existant, les clés des nouveaux individus créés risquent d'être modifiées si elles étaient déjà attribuées.
Votre avis: Faut-il automatiser la correction de CLE_FIXE par les triggers comme je le propose ou n'appliquer cet automatisme que pour la création et la modification depuis la fiche (pas lors d'une importation)? Le deuxième choix implique un controle des doublons après importation par la requête et soit une modification du programme par PCM pour vérifier le code lors de la création d'un individu, soit garder les triggers et demander à PCM de proposer en option de les désactiver lors d'une importation gedcom. L'option pourrait s'appeler "Garder les CLE_FIXE". Je serai plutôt partisan de cette dernière solution.
A+
André