Auteur Sujet: message d'erreur sur table ybtemp  (Lu 3534 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne ilpleutcematin

  • Grand Amateur
  • ***
  • Messages: 31
message d'erreur sur table ybtemp
« le: 03 Novembre 2007 à 12:27:55 »
Bonjour,
J'ai un erreur : Message:violation of PRIMARY or UNIQUE KEY constraint "INTE_129" on table "YBTEMP"   
quand je lance la generation de l'export web (descendance) avec plus de 2 generations sur certains ancètres (çad quand ils n'ont pas de parents)
ancestrologie v1210 base v5.122 arbres 2009.1.9.15
firebird WI-V2.1.1.17910  server version
Windows xp sp3
 

Hors ligne ilpleutcematin

  • Grand Amateur
  • ***
  • Messages: 31
message d'erreur sur table ybtemp
« Réponse #1 le: 04 Novembre 2007 à 17:32:32 »
complément d'informations:
En fait il s'agit d'un problème d'homonymes et pas d'ancètres. Dans certaines descendances, j'ai des homonymes.   
Dès que le programme trouve 2 fois le même nom/prénom il plante.
Je suis en version 2.2.5.1 de création web.
 
ancestrologie v1210 base v5.122 arbres 2009.1.9.15
firebird WI-V2.1.1.17910  server version
Windows xp sp3
 

Hors ligne DDdeBerdeux

message d'erreur sur table ybtemp
« Réponse #2 le: 08 Novembre 2007 à 11:26:21 »
Bonjour,
L'erreur n'est-elle pas provoquée lorsqu'un individu dans la descendance a eu plusieurs conjoints?
Dans le programme la requête suivante est effectuée:INSERT INTO YBTEMP
SELECT CLE_FICHE, SOSA
FROM PROC_ETAT_DESCENDANCE(:I_CLEF,:I_NIVEAU,:I_DOSSIER)
WHERE ORDRE IS NULL
où la table YBTEMP a pour clef primaire le champ CLE_FICHE.
Or les conjoints ont été ajoutés à la PROC_ETAT_DESCENDANCE  pour les présenter dans l'état de descendance en juillet. Ce qui fait que l'individu devrait être inséré plusieurs fois dans la table YBTEMP s'il a eu plusieurs conjoints.
Pour réparer çà il suffirait d'ajouter "distinct" après le select, mais il serait plus efficace de remplacer cette requête par la suivante:INSERT INTO YBTEMP(cle_fiche,sosa)
select tq_cle_fiche,tq_num_sosa
from proc_tq_descendance(:i_clef,:i_niveau,0,0)
Si Yves choisit cette solution, je pourrais enregistrer cette dépendance dans les commentaires de la procédure, afin d'éviter de tels incidents...
A+
André
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne ilpleutcematin

  • Grand Amateur
  • ***
  • Messages: 31
message d'erreur sur table ybtemp
« Réponse #3 le: 08 Novembre 2007 à 21:23:23 »
j'ai testé avec d'autres sélection : effectivement le problème intervient quand il y a un individu qui a été marié plusieurs fois
ancestrologie v1210 base v5.122 arbres 2009.1.9.15
firebird WI-V2.1.1.17910  server version
Windows xp sp3
 

Hors ligne Yves Bruant

message d'erreur sur table ybtemp
« Réponse #4 le: 12 Novembre 2007 à 12:31:05 »
Bonjour,

En fait selon le choix d'export, je fais deux requêtes différentes :

  • si ascendance :
INSERT INTO YBTEMP
SELECT CLE_FICHE, SOSA
FROM PROC_ETAT_ASCENDANCE(:I_CLEF,:I_NIVEAU,:I_DOSSIER, 0)
WHERE IMPLEXE IS NULL

  • si descendance :
INSERT INTO YBTEMP
SELECT CLE_FICHE, SOSA
FROM PROC_ETAT_DESCENDANCE(:I_CLEF,:I_NIVEAU,:I_DOSSIER)
WHERE ORDRE IS NULL

    Que suggères-tu André ?
    Amitiés.Yves.
     

    Hors ligne DDdeBerdeux

    message d'erreur sur table ybtemp
    « Réponse #5 le: 12 Novembre 2007 à 16:16:23 »
    Bonjour,
    Si tu veux assurer le fonctionnement correct avec les versions anciennes et actuelles d'Ancestrologie, comme dit plus haut, il suffit pour la descendance d'ajouter "distinct" au select de ta requête.INSERT INTO YBTEMP
    SELECT distinct CLE_FICHE, SOSA
    FROM PROC_ETAT_DESCENDANCE(:I_CLEF,:I_NIVEAU,:I_DOSSIER)
    WHERE ORDRE IS NULL
    Pour l'ascendance, il n'y a rien à modifier.
    Maintenant, si tu souhaites aussi améliorer la vitesse d'exécution de tes requêtes, mais celà n'est applicable que depuis la V760 b5.044 de début octobre, tu peux les remplacer pour l'ascendance par:INSERT INTO YBTEMP(cle_fiche,sosa)
    select tq_cle_fiche,tq_sosa
    from proc_tq_ascendance(:i_clef,:i_niveau,0,0)
    et pour la descendance par:INSERT INTO YBTEMP(cle_fiche,sosa)
    select tq_cle_fiche,tq_num_sosa
    from proc_tq_descendance(:i_clef,:i_niveau,0,0)
    Ces formes sont plus efficaces, car elles utilisent des procédures qui ne font que les jointures nécessaires au calcul des sosas, sans les jointures aux autres tables permettant de trouver les dates/lieux de naissance/décès, nom des conjoints, date/lieu du mariage, profession etc... affichés dans les états. D'ailleurs, ces proc_tq_ sont appelées dans les proc-etat_ .
    A+
    André
    Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
     

    Hors ligne Yves Bruant

    message d'erreur sur table ybtemp
    « Réponse #6 le: 12 Novembre 2007 à 17:38:37 »
    Merci André.

    Comme je suis attaché au bon fonctionnement avec toutes les versions et
    que la vitesse d'exécution de CreationWeb n'est pas fondamentale,
    je n'ajouterai donc que la clause DISTINCT à la requête.

    Je le ferai prochainement.
    Amitiés.Yves.
     

    Hors ligne Yves Bruant

    message d'erreur sur table ybtemp
    « Réponse #7 le: 13 Novembre 2007 à 10:06:51 »
    Bonjour,

    La version corrective 2.2.6.0 est disponible. Elle se trouve sur le site à l'adresse :
    http://www.yves-bruant.fr/creatweb_telecharge.php
    Amitiés.Yves.
     

    Hors ligne ilpleutcematin

    • Grand Amateur
    • ***
    • Messages: 31
    message d'erreur sur table ybtemp
    « Réponse #8 le: 13 Novembre 2007 à 22:44:06 »
    J'ai installé la version 2.2.6.0 : cela fonctionne parfaitement.
    Merci à tous les deux.
    Et surtout merci pour votre réactivité : le problème a été corrigé en une semaine.
    Merci beaucoup.
    ancestrologie v1210 base v5.122 arbres 2009.1.9.15
    firebird WI-V2.1.1.17910  server version
    Windows xp sp3