Auteur Sujet: Blocage dans l'enregistrement d'une date  (Lu 2330 fois)

plus minus reset

0 Membres et 1 Invité sur ce sujet

Hors ligne stef

  • Néophyte
  • *
  • Messages: 0
Blocage dans l'enregistrement d'une date
« 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
 

Hors ligne DDdeBerdeux

Blocage dans l'enregistrement d'une date
« Réponse #1 le: 07 Novembre 2006 à 18:46:56 »
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é
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne Tophe3860

Blocage dans l'enregistrement d'une date
« Réponse #2 le: 07 Novembre 2006 à 21:48:26 »
Pour des conseils de saisie des dates voir le sujet 1.5. des trucs & astuces  :wink:
Christophe Pensez [résolu] et trucs & astuces : un ancestrologie pour tous, tous pour un ancestrologie!
 

Hors ligne stef

  • Néophyte
  • *
  • Messages: 0
Blocage dans l'enregistrement d'une date
« Réponse #3 le: 08 Novembre 2006 à 07:10:57 »
Citation de: "DDdeberdeux"
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
 

Hors ligne Tophe3860

Blocage dans l'enregistrement d'une date
« Réponse #4 le: 08 Novembre 2006 à 07:36:25 »
Citation de: "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:
Christophe Pensez [résolu] et trucs & astuces : un ancestrologie pour tous, tous pour un ancestrologie!
 

Hors ligne ovinbovin

  • Débutant
  • *
  • Messages: 6
Blocage dans l'enregistrement d'une date
« Réponse #5 le: 26 Novembre 2006 à 00:47:47 »
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.
 

Hors ligne DDdeBerdeux

Blocage dans l'enregistrement d'une date
« Réponse #6 le: 26 Novembre 2006 à 10:10:53 »
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é
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)
 

Hors ligne ovinbovin

  • Débutant
  • *
  • Messages: 6
Résolution de mon problème
« Réponse #7 le: 27 Novembre 2006 à 03:01:10 »
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 !
 

Hors ligne DDdeBerdeux

Résolution de mon problème
« Réponse #8 le: 27 Novembre 2006 à 10:57:29 »
Citation de: "ovinbovin"
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é
Une application pleinement satisfaisante est toujours complétée par une mise à jour buggée. (Loi des Mises à Jour)