Bonjour,
c'est bien le paradoxe, cette date du 6/15/-1996 n'existe pas dans ma base de données... et ne figure donc pas sur ma fiche. Je ne sais pas d'où elle est vient...
Cà ne va pas être facile d'être clair, mais essayons...
Le problème vient de ce que vous devez avoir écrit "-1996" au lieu de "vers 1996" comme date d'un événement.
La procédure stockée PROC_AGE_EVENT est appelée par le logiciel afin d'afficher l'âge de l'individu lors d'un événement, tout comme PROC_AGE_INDIVIDU permet d'afficher l'âge à son décès ou aujourd'hui s'il n'est pas décédé.
Pour calculer l'âge en nombre de jours, ces procédures utilise simplement la différence "date de l'événement" - "date de naissance". Il n'y a pas de problème lorsque ces dates sont complètes (jour, mois et année sont connus). Mais lorsque seule l'année et éventuellement le mois sont connus, la méthode utilisée consiste à calculer une date approximative basée sur les éléments connus. Ainsi si le jour est inconnu il est remplacé par le 15, et si le mois est inconnu il est remplacé par le 6ième mois (juin). Ces éléments sont écrits dans une chaîne de caractères sous la forme "mois/jour/année" (format des dates stockées dans Firebird) afin d'être convertis en date.
C'est ainsi que seule l'année "-1996" étant connue on cherche à convertir en date "6/15/-1996".
Le problème, c'est que Firebird ignorant les dates av JC ne sait convertir cette chaîne en date et émet le message d'erreur que vous voyez.
Pour éviter ce problème, pour la prochaine version b5.045 de la base, je modifie les procédures en cause pour qu'en cas d'année négative, le calcul "précis" utilisant la conversion en date, soit remplacé par un calcul plus approximatif basé uniquement sur la différence des années. Ainsi il n'y aura plus de blocage pour cette cause.
La PROC_DATES_INCOHERENTES (utilisée pour "Liste des dates incohérentes sur les individus") est aussi modifiée, pour lister les anomalies de formatage des dates dans les événements et les domiciles.
Autres précisions:
Une date est dite "correctement formatée" quand elle respecte les formes et "étiquettes" définies (voir le message d'Aquablue dans les tutoriels rassemblés par Christophe). La procédure stockée utilisée par logiciel a été programmée pour accepter ces formes et en déduire au moins l'année, si possible le mois et le jour.
Afin de pouvoir mémoriser des dates av JC, des formes du type "décembre -15" ou "-1996" sont aussi acceptées (sans le jour, l'inscrire n'aurait pas de sens en regard de la précision de ces dates). Ancestrologie.exe émet un message d'erreur lorsqu'on saisit de telles dates, mais elles peuvent tout de même être enregistrées. -1996 n'est donc pas reconnu comme une date mal formatée.
A+
André