Vous avez une possibilité de retrouver plus facilement le nom de la commune concernée en allant dans
Windows C:: /programmes (x86)/Ancestrologie/Tables de references/REP_CP_VILLE.txt
Vous ouvrez en cliquant dessus, le fichier s'ouvre, allez en haut dans menu Edition, clic sur Rechercher
taper le 5.0440671E15.
Bonjour,
Ça m'étonnerait bien que cette procédure donne un résultat
.
REF_CP_VILLE.txt est sous forme de texte le contenu initial de la table de référence des lieux REF_CP_VILLE. Son contenu n'est copié que lors de la création d'un nouveau lieu dans votre généalogie si la ville s'y trouve. On ne devrait donc pas y retrouver les coordonnées des nouvelles villes que vous avez créées.
Dans la base d'Ancestrologie les latitudes et longitudes sont mémorisées dans des champs de type DECIMAL(15,8) et NUMERIC(15,8) (identiques pour FIREBIRD), ce qui signifie qu'ils peuvent contenir 15 chiffres dont 8 après le séparateur décimal. La partie entière du nombre ne peut donc dépasser 15-8 = 7 chiffres.
C'est largement suffisant (et même un peu ridicule), car exprimées et degrés décimaux une latitude terrestre est comprise entre -90 et 90 et une longitude entre -180 et 180. (3 chiffres pour la partie entière suffisent).
5.0440671E15 = 5044067100000000 (E15 = 10 puissance 15) ce qui est un nombre entier impossible à enregistrer avec 7 chiffres, d'où l'erreur signalée.
Si vous voulez retrouver les enregistrements contenant des latitudes et longitudes invalides exécutez dans le BOA la requête suivante.
select i.KLE_DOSSIER as DOSSIER
,i.NOM
,i.PRENOM
,i.CLE_FICHE
,r.REF_EVE_LIB_LONG as EVENEMENT
,e.EV_IND_LATITUDE as LATITUDE
,e.EV_IND_LONGITUDE as LONGITUDE
from EVENEMENTS_IND e
inner join INDIVIDU i on i.CLE_FICHE=e.EV_IND_KLE_FICHE
inner join REF_EVENEMENTS r on /* r.LANGUE='FR' and */ r.REF_EVE_LIB_COURT=e.EV_IND_TYPE
where e.EV_IND_LATITUDE not between -90 and 90
or e.EV_IND_LONGITUDE not between -180 and 180
union
select i.KLE_DOSSIER
,i.NOM
,i.PRENOM
,i.CLE_FICHE
,'Adresse'
,a.ADR_LATITUDE
,a.ADR_LONGITUDE
from ADRESSES_IND a
inner join INDIVIDU i on i.CLE_FICHE=a.ADR_KLE_IND
where a.ADR_LATITUDE not between -90 and 90
or a.ADR_LONGITUDE not between -180 and 180
union
select i.KLE_DOSSIER
,i.NOM /*que le mari*/
,i.PRENOM
,i.CLE_FICHE
,r.REF_EVE_LIB_LONG
,f.EV_FAM_LATITUDE
,f.EV_FAM_LONGITUDE
from EVENEMENTS_FAM f
inner join T_UNION u on u.UNION_CLEF=f.EV_FAM_CLEF
inner join INDIVIDU i on i.CLE_FICHE=u.UNION_MARI
inner join REF_EVENEMENTS r on /* r.LANGUE='FR' and */ r.REF_EVE_LIB_COURT=f.EV_FAM_TYPE
where f.EV_FAM_LATITUDE not between -90 and 90
or f.EV_FAM_LONGITUDE not between -180 and 180
Si la liste est longue, sauvegardez les résultats dans un fichier texte ou html pour les avoir sous les yeux afin de corriger les événements ou adresses avec des latitudes ou longitudes hors norme.
André