forum Ancestrologie
Ancestrologie - Le Programme => Ancestrologie - Rapports d'anomalies => Discussion démarrée par: stef le 07 Novembre 2006 à 18:26:56
-
PB : Blocage dans l'enregistrement d'une date
Versions : Ancestrologie : V590 - Base : 4.054
Systeme : Windows XP Familial.
Description :
Lorsque l'on rentre une date sous la forme "vers 1660-1662", le sytème l'enregistre dans la page individu, mais lorsqu'on quitte la fiche de saisie, il affiche les messages suivant :
- Conversion error from string "1/1/-1662"
- L'année (-1662) de cette date est erronnée, corriger SVP.
Après correction, et même en mettant une date type "1662", le problème se répète.
Après fermeture de l'application (nombreux messages "Transaction is not active") et réouverture, le problème apparait au démarrage, la barre d'outil est innaccessible (grisé) à l'exception de l'icone généalogie, et la barre verticale d'outils est innactive.
J'ai dû recharger une ancienne base.
Cordialement
VglDan
-
Bonsoir,
Le signe "-" n'est ni un mot clef ni un séparateur, et n'est pas admis dans la saisie d'une date. Il pourrait être interprêté comme une date avJC s'il était précédé d'un espace, mais sûrement pas pour remplacer "entre 1660 et 1662" qui est une syntaxe préférable.
A+
André
-
Pour des conseils de saisie des dates voir le sujet 1.5. des trucs & astuces (http://www.ancestrologie.org/forum/index.php?topic=6095.0) :wink:
-
Bonsoir,
Le signe "-" n'est ni un mot clef ni un séparateur, et n'est pas admis dans la saisie d'une date. Il pourrait être interprêté comme une date avJC s'il était précédé d'un espace, mais sûrement pas pour remplacer "entre 1660 et 1662" qui est une syntaxe préférable.
A+
André
Deux remarques :
- J'utilise Ancestrologie depuis plus de 3 ans, et j'ignorais qu'il existait des mots clefs et séparateurs imposés pour les dates. Avant cette version, je n'ai jamais eu de problème avec l'enregistrement de dates. Il me semble que cette info devrai apparaitre plus clairement, et qu'au minimum, cela ne vérole pas l'application, et que pour s'en sortir il faille recharger une ancienne base et perdre les infos entrées depuis.
- Merci à Christophe pour l'info sur la constitution des dates. Utilisateur ancien de Ancestrologie, je ne vais pas fouiller dans le forum tutoriel, je pense que sa rubrique "Trucs et Astuces" mérite une place à part entière.
Cordialement
VglDan
-
Utilisateur ancien de Ancestrologie, je ne vais pas fouiller dans le forum tutoriel
Si, si... il faut fouiller dans ce forum et les autres! :wink:
Pour ce qui est de la localisation des "trucs & astuces", je crois qu'il est assez logique qu'ils soient là : il s'agit bien d'une compilation des aides fournies par les membres du forum... donc un aspet du tutoriel :roll: :wink:
Mais, ce n'est pas le plus important... :wink:
Le principal est que celui - celle qui a besoin de se dépatouiller, trouve une aide sur le forum... et ça marche :wink:
-
J'ai le même problème ;
Conversion error from string "1/1/-1720"
C'est un problème qui ne s'était jamais présenté auparavant.
Cela bloque Ancestrologie et le fait planter.
-
Bonjour,
Je viens de créer un individu né en octobre -1200 et décédé en février -1151. Evidemment, apparition incessante d'un message signalant que l'année négative est erronée, mais à force de fermer le message, l'enregistrement est quand même possible. Re-message d'erreur quand on revient sur la fiche, mais pas de blocage d'Ancestrologie dont on ne puisse sortir normalement en fermant simplement les messages d'erreur.
A+
André
-
Merci mais cette manip ne fonctionne pas dans mon cas. Le message d'erreur apparaît une fois, puis quand on clique OK, on a des violations d'accès jusqu'au plantage d'Ancestrologie.
Je m'en suis sorti en remplaçant mon fichier Ancestrologie.bdd par une base vierge. Une fois dans Ancestrologie dans le menu "Configuration", option "Emplacement de la base de données", j'ai rechargé ma base merdique.
Malgré quelques messages déagréables, j'ai eu accès au menu et ai lancé une optimisation de la base. Résultat, j'ai repris la main (tant que je ne consulte pas une fiche avec une date négative tout va bien).
Ensuite je me suis attaqué au problème des dates négatives. Je précise qu'elles sont apparues suite à un export de mes dossiers au format GEDCOM et à un réimport :
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sous BOA
Considérant que le numéro de dossier de ma base est le 2.
La requête de recherche des dates de naissances/baptèmes négatives :
select CLE_FICHE, NOM, PRENOM, DATE_NAISSANCE, ANNEE_NAISSANCE, EV_IND_DATE_WRITEN
from INDIVIDU I
left outer join EVENEMENTS_IND N on I.CLE_FICHE = N.EV_IND_KLE_FICHE and (N.EV_IND_TYPE= 'BIRT' or N.EV_IND_TYPE= 'CHR')
where I.KLE_DOSSIER =2 and I.ANNEE_NAISSANCE <0
Le résultat est (désolé pas d'indentation) :
CLE_FICHE NOM PRENOM DATE_NAISSANCE ANNEE_NAISSANCE EV_IND_DATE_WRITEN
2254 VIMONT François -1605 -1605 -1605
2900 TETREL Marie Marguerite -1720 -1720 -1720
3469 SERY Anthoine -1714 -1714 -1714
4054 HAUCHECORNE Susanne -1695 -1695 -1695
4296 DÉHAIS Nicolas -1675 -1675 -1675
4697 RECHER Catherine -1720 -1720 -1720
Seulement voilà, la table individu ne contient pas la véritable date de naissance, les champs de date de cette table servent à l'affichage des listes d'individus (c'est pas propre Mr Cazaux-Moutou !).
La table qui stocke les dates de naissance est la table EVENEMENTS_IND :
La requête de recherche de la table contenant la date de naissance/baptème complète de VIMONT François est :
select EV_IND_KLE_FICHE,EV_IND_TYPE, EV_IND_DATE_WRITEN, EV_IND_DATE_YEAR
from EVENEMENTS_IND
where EV_IND_KLE_DOSSIER =2 and (EV_IND_TYPE= 'BIRT' or EV_IND_TYPE= 'CHR') and EV_IND_KLE_FICHE =2254
EV_IND_KLE_FICHE EV_IND_TYPE EV_IND_DATE_WRITEN EV_IND_DATE_YEAR
2254 BIRT -1605 -1605
En consultant des individus ayant une date de naissance/baptème complète (ce n'est pas le cas dans le cas présent),
on en conclue que le champ stockant la date de naissance/baptème est EV_IND_DATE_WRITEN. (WRITTEN s'écrit avec deux "T" Mr le programmeur)
Pour chacune des fiches, on va remettre la date de naissance négative en date positive ;
update EVENEMENTS_IND set EV_IND_DATE_WRITEN = 1605 where EV_IND_KLE_DOSSIER=2 and EV_IND_KLE_FICHE=2254 ;
update EVENEMENTS_IND set EV_IND_DATE_WRITEN = 1720 where EV_IND_KLE_DOSSIER=2 and EV_IND_KLE_FICHE=2900 ;
update EVENEMENTS_IND set EV_IND_DATE_WRITEN = 1714 where EV_IND_KLE_DOSSIER=2 and EV_IND_KLE_FICHE=3469 ;
update EVENEMENTS_IND set EV_IND_DATE_WRITEN = 1695 where EV_IND_KLE_DOSSIER=2 and EV_IND_KLE_FICHE=4054 ;
update EVENEMENTS_IND set EV_IND_DATE_WRITEN = 1675 where EV_IND_KLE_DOSSIER=2 and EV_IND_KLE_FICHE=4296 ;
update EVENEMENTS_IND set EV_IND_DATE_WRITEN = 1720 where EV_IND_KLE_DOSSIER=2 and EV_IND_KLE_FICHE=4697 ;
A chaque requête exécutée, j'ai eu une violation d'accès sur le module DLL_BOA.dll, mais la mise à jour est malgré tout exécutée sans perte d'information.
Des procédures stockées ont certainement synchronisé la valeur des champs DATE_NAISSANCE, ANNEE_NAISSANCE des tables EVENEMENTS_IND et INDIVIDU avec la valeur mise à jour EV_IND_KLE_FICHE de la table EVENEMENTS_IND
Cliquer sur le bouton "valider les modifications"
Cette procédure doit être valable pour des événements-individu de type décès (DEAT) et inhumation (BURI).
Au final, j'ai de nouveau une base utilisable avec un Ancestro qui ne plante pas plus que d'habitude. Ouf !
-
Seulement voilà, la table individu ne contient pas la véritable date de naissance, les champs de date de cette table servent à l'affichage des listes d'individus (c'est pas propre Mr Cazaux-Moutou !).
Bonjour,
Si vous voulez dire qu'il y a redondance, vous avez raison. Elle n'est pas indispensable, mais facilite et accélère la recherche de l'individu. Et Ancestrologie a été conçu il y a 10 ans et sur une autre base...
Pour les erreurs du BOA, ne pas oublier qu'il y a 2 boutons: l'un "Exécuter une requête" qui doit être utilisé si la requête retourne un résultat (select...), l'autre "Exécuter une procédure" quand la requête ne retourne pas de résultat (update..., execute procedure...). C'est donc ce dernier que vous auriez dû utiliser pour ne pas avoir de message d'erreur.
Vos requêtes update... ne précisent pas quel évènement de l'individu doit être mis à jour. Elles modifient donc également les autres évènements de cet individu s'ils existent. Il aurait fallu ajouter "and EV_IND_TYPE= 'BIRT'" dans la clause where.
Mais le plus facile est encore d'accéder en direct à l'enregistrement avec des outils comme IBOConsole, IBExpert ,IBEasy+ etc présentés dans le forum Tutoriels.
A+
André