Auteur Sujet: Fonction recherche des individus orphelins  (Lu 3008 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne Pierrot

  • AncestrArbres -Test
  • AncestroSenior
  • *****
  • Messages: 1 044
  • Remercié: 1 fois
  • Programme: V.1360
  • Base: 5.130
Fonction recherche des individus orphelins
« le: 30 Décembre 2006 à 21:16:23 »
Bonsoir,



Je viens de remarquer que lorsque je demande la liste des individus orphelins, celle-ci est vide, la fonction ne marche plus.



Je viens de créer un nouvel individu sans aucun lien pour tester, j'ai enregistré, j'ai même fermé Ancestrologie, après réouverture la liste est toujours vide.



Je ne sais pas depuis quand cela ne fonctionne plus.



Cordialement

Pierrot


Windows XP Pro SP 3 - 2048 Mo - Affichage 1024x768
 

Hors ligne DDdeBerdeux

Fonction recherche des individus orphelins
« Réponse #1 le: 30 Décembre 2006 à 22:47:05 »
Bonsoir,

Ce sera rectifié dans la prochaine version de la base, mais je serai curieux, si quelqu'un a encore une version sous Firebird 1.5.3, qu'il nous dise si çà marchait...

A+

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Facon

Fonction recherche des individus orphelins
« Réponse #2 le: 30 Décembre 2006 à 22:56:18 »
Bonsoir André,

Sur ma relique V547 b4.043 FB 1.5.3, la fonction Liste des individus orphelins fonctionne, semble-t-il, correctement. J'ai une liste d'une soixantaine d'individus n'ayant aucun lien avec aucun autre individu de la généalogie.
Christian
 

Hors ligne Pierrot

  • AncestrArbres -Test
  • AncestroSenior
  • *****
  • Messages: 1 044
  • Remercié: 1 fois
  • Programme: V.1360
  • Base: 5.130
Fonction recherche des individus orphelins
« Réponse #3 le: 30 Décembre 2006 à 22:59:50 »
Merci de votre réponse



Cordialement

Pierrot


Windows XP Pro SP 3 - 2048 Mo - Affichage 1024x768
 

Hors ligne Joël AUGUSTE

  • AncestroSenior
  • *****
  • Messages: 1 348
  • Remercié: 4 fois
    • http://gw.geneanet.org/joelauguste
  • Programme: v2015-1996.3.2
  • Base: 5.131
  • Système: W11
Fonction recherche des individus orphelins
« Réponse #4 le: 31 Décembre 2006 à 09:18:31 »
Citation de: "Facon"
Sur ma relique V547 b4.043 FB 1.5.3, la fonction Liste des individus orphelins fonctionne, semble-t-il, correctement. J'ai une liste d'une soixantaine d'individus n'ayant aucun lien avec aucun autre individu de la généalogie.


Bonjour,



Je confirme, avec Firebird 1.5, cela fonctionnait.
Cordialement,

Joël


Ancestrologie version  v2015-1996.3 b5.131
Intel Core i3-2100, 6144M°, Ecran 21,5" (1440*900)
Windows 10 Famille
 

Hors ligne DDdeBerdeux

Fonction recherche des individus orphelins
« Réponse #5 le: 31 Décembre 2006 à 11:28:04 »
Bonjour,

Merci, pour ce dernier jour de l'année, j'ai appris quelque chose.

La requête utilisée dans la procédure PROC_ORPHELIN était celle-ci:SELECT CLE_FICHE,

       NOM,

       PRENOM,

       DATE_NAISSANCE,

       DATE_DECES,

       SEXE

FROM INDIVIDU

WHERE KLE_DOSSIER = :IDOSSIER and

    CLE_PERE IS NULL and

    CLE_MERE IS NULL And

    CLE_FICHE not in (select cle_pere from individu) and

    CLE_FICHE not in (select cle_mere from individu) and

    CLE_FICHE not in (select union_mari from T_UNION) and

    CLE_FICHE not in (select union_femme from T_UNION) and

    CLE_FICHE not in (select assoc_kle_associe from  T_ASSOCIATIONS)

ORDER BY NOM, PRENOM
où :IDOSSIER est à remplacer par le n° du dossier.

Elle fonctionne sous Firebird 1.5, mais plus sous FB2.0.

La raison, c'est que FB2.0 n'accepte pas que dans" Y in(X1,X2,...,Xi,...,Xn)", l'un des termes Xi soit null. Il faudrait donc écrireSELECT CLE_FICHE,

       NOM,

       PRENOM,

       DATE_NAISSANCE,

       DATE_DECES,

       SEXE

FROM INDIVIDU

WHERE KLE_DOSSIER = :IDOSSIER

  and CLE_PERE IS NULL

  and CLE_MERE IS NULL

  and CLE_FICHE not in (select cle_pere from individu where cle_pere is not null)

  and CLE_FICHE not in (select cle_mere from individu where cle_mere is not null)

  and CLE_FICHE not in (select union_mari from T_UNION where union_mari is not null)

  and CLE_FICHE not in (select union_femme from T_UNION where union_femme is not null)

  and CLE_FICHE not in (select assoc_kle_associe from  T_ASSOCIATIONS where assoc_kle_associe is not null)

ORDER BY NOM, PRENOM
et là çà marche.

Comme cette requête met plus de 5s à s'exécuter, je préfère mettre cette autre forme dans PROC_ORPHELINSELECT i.CLE_FICHE,

       i.NOM,

       i.PRENOM,

       i.DATE_NAISSANCE,

       i.DATE_DECES,

       i.SEXE

FROM INDIVIDU i

WHERE i.KLE_DOSSIER = :IDOSSIER

  and i.CLE_PERE IS NULL

  and i.CLE_MERE IS NULL

  and not exists (select * from individu where cle_pere=i.cle_fiche

                                            or cle_mere=i.cle_fiche)

  and not exists (select * from T_UNION where union_mari=i.cle_fiche

                                           or union_femme=i.cle_fiche)

  and not exists (select * from T_ASSOCIATIONS

                  where assoc_kle_associe=i.cle_fiche)

ORDER BY i.NOM, i.PRENOM
qui met 10 fois moins de temps pour obtenir le même résultat.

J'espère seulement qu'il n'y a pas d'autres cas comme celui-là dans le code...

A+ et bonnes fêtes.

André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Pierrot

  • AncestrArbres -Test
  • AncestroSenior
  • *****
  • Messages: 1 044
  • Remercié: 1 fois
  • Programme: V.1360
  • Base: 5.130
Fonction recherche des individus orphelins
« Réponse #6 le: 31 Décembre 2006 à 18:48:24 »
Merci André cela va magnifiquement  :D



Cordialement







Meilleurs voeux à tous

Pierrot


Windows XP Pro SP 3 - 2048 Mo - Affichage 1024x768