forum Ancestrologie

Ancestrologie - Plugins et Outils => BOA => Discussion démarrée par: Joël AUGUSTE le 03 Juin 2009 à 11:44:13

Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 03 Juin 2009 à 11:44:13
Bonjour,
 
Je viens de me rendre compte que la mise à jour de masse, correction d'un patronyme en respectant la casse ne fonctionnait pas si il y avait une apostrophe dans le nom ou dans la particule du nom.
 
Je n'ai pas essayé sans respecter la casse.
 
J'ai BOA, version 1.7 du 13 mars 2005.
Quelqu'un a-t-il constaté ce problème ?
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 03 Juin 2009 à 13:45:47
c'est de l'informatique tique

l'apostrophe est un délimiteur
donc pour dire que l'on veux ce caractère il faut le doubler (une fois)

pour écrire l'apostrophe on frappe l''apostrophe et cela marche

bonne journée
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 03 Juin 2009 à 16:43:02
Et bien l'informatique tique à toquer, ça n'a pas marché, et toc !
 
J'avais : ALBRET D'ORVAL (D') et avec BOA dans remplacer le patronyme en respectant la casse, j'ai mis : ALBRET D'ORVAL (d'')
J'ai essayé aussi : ALBRET D''ORVAL (d'')
et ça ne marche pas.
 
Pour un nom qui n'a pas d'apostrophe, mais dont la particule seulement possède une apostrophe, ça ne fonctionne pas non plus, par exemple remplacer ALBRET (D') par ALBRET (d') ou ALBRET (d'') ne fonctionne pas.
 
Je veux mettre toutes les particules de noblesse en minuscules.
Pour (de), (du)... je n'ai pas de problème sauf si il y a une apostrophe dans le nom.
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 03 Juin 2009 à 17:10:39
Bonsoir
 
 bisange voir étrare
 cela fonctionne chez moi
 
 pour le passage en minuscule des particules j'ai

/* Minuscule particule */

SELECT DISTINCT NOM from INDIVIDU where NOM Containing ' ('

Update INDIVIDU SET NOM = SUBSTR(NOM, 1, (CHAR_LENGTH(NOM)-4)) || '(de)' where (SUBSTRING (NOM, (CHAR_LENGTH(NOM)-3), (CHAR_LENGTH(NOM))))  = '(DE)'
Update INDIVIDU SET NOM = SUBSTR(NOM, 1, (CHAR_LENGTH(NOM)-4)) || '(di)' where (SUBSTRING (NOM, (CHAR_LENGTH(NOM)-3), (CHAR_LENGTH(NOM))))  = '(DI)'
Update INDIVIDU SET NOM = SUBSTR(NOM, 1, (CHAR_LENGTH(NOM)-4)) || '(of)' where (SUBSTRING (NOM, (CHAR_LENGTH(NOM)-3), (CHAR_LENGTH(NOM))))  = '(OF)'
Update INDIVIDU SET NOM = SUBSTR(NOM, 1, (CHAR_LENGTH(NOM)-5)) || '(des)' where (SUBSTRING (NOM, (CHAR_LENGTH(NOM)-4), (CHAR_LENGTH(NOM))))  = '(DES)'
Update INDIVIDU SET NOM = SUBSTR(NOM, 1, (CHAR_LENGTH(NOM)-5)) || '(von)' where (SUBSTRING (NOM, (CHAR_LENGTH(NOM)-4), (CHAR_LENGTH(NOM))))  = '(VON)'

A essayer (je ne met pas de couleur car la mise en page fou la M....)
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 03 Juin 2009 à 17:16:53
Rectificatif

ALBRET D'ORVAL (D')

cela ne "marche" pas chez moi !!!!

J'avais fait il y a quelques temps et quelques versions des changement de nom avec des apostrophes et .... c'était bon
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 03 Juin 2009 à 17:20:44
Bonsoir,
 
Merci pour ta requête, dans la 2ème tu as "di" et dans la 3ème tu as "of", ils s'agit de particules étrangères ?
 
Il n'y en a pas de prévu pour d', je peux en créer une ?
 
Excuse-moi mais je suis nul en BOA, mais je sais utiliser une requête déjà créée.
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 03 Juin 2009 à 17:22:52
WOUI

avec une bonne sauvegarde on peut faire des tests

Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 04 Juin 2009 à 09:36:11
Bonjour,
Après sauvegarde de ma base, j'ai fait un test, voici le résultat (voir image ci-dessous).
En faisant d'autres tests, je me suis aperçu que via le BOA, je ne pouvais pas supprimer une apostrophe qui se trouve dans le corps d'un patronyme.
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Ancestrologie le 04 Juin 2009 à 11:20:28
ton apostrophe il faut la mettre entre "
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 04 Juin 2009 à 12:08:55
    Bonjour
 
Bon je ne suis pas très doué pour aider
 
De plus ,dans mes réserves certaines requêtes date de FIREBIRD 1.x et le fait de passer en V2 des commandes sont à changer 
 
et et Les ordres sont à passer l ‘un après l’autre dans  le BOA

 
Le SELECT pour vérifier
 
Puis chaque UPDATE pour modifier , ce dernier se termine par un message d’erreur « Normal pour le BOA »
 "Violation d'accès à l'adresse  031EB088 dans le module "DLL_BOA.dll". Ecriture de l'adresse  00000000"


Valider les modifications (bouton en bas)



Et revérifier avec le select
 
Si vous avez plusieurs dossier il faut aussi donner le dossier c’est à dire rajouter AND kle_dossier=X ou X est le N° de dossier
 
Les ordres que je vient de tester



SELECT DISTINCT NOM from INDIVIDU where NOM Containing ' ('
 
Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -4)) || '(de)' where CHAR_LENGTH (NOM) > 5 and SUBSTRING (NOM from (CHAR_LENGTH(NOM)-3) for 4)  = '(DE)'
 
Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -4)) || '(di)' where CHAR_LENGTH (NOM) > 5 and SUBSTRING (NOM from (CHAR_LENGTH(NOM)-3) for 4)  = '(DI)'
 
Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -4)) || '(of)' where CHAR_LENGTH (NOM) > 5 and SUBSTRING (NOM from (CHAR_LENGTH(NOM)-3) for 4)  = '(OF)'
 
Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -5)) || '(des)' where CHAR_LENGTH (NOM) > 7 and SUBSTRING (NOM from (CHAR_LENGTH (NOM) -4) for 5)  = '(DES)'
 
Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH (NOM) -5) || '(von)' WHERE CHAR_LENGTH (NOM) > 7 and SUBSTRING (NOM from (CHAR_LENGTH (NOM) -4) for 5)  = '(VON)'
 
SELECT DISTINCT NOM from INDIVIDU   WHERE  CHAR_LENGTH (NOM) > 7 and SUBSTRING (NOM from (CHAR_LENGTH (NOM)-4) for 5) =  '(von)'
 
Bon Usage 
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 07 Juin 2009 à 17:11:35
Bonjour,
 
J'ai fait de nombreux essais avec des ' ou des ".
- en modification des noms en respectant la casse, je n'ai pas de modifications,
- en faisant la requête, j'ai toujours l'erreur cité plus haut (Dynamic SQL Error).
 
Quelqu'un a-t-il le même problême ?
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 11 Juin 2009 à 16:25:21
bonjour

ALBRET (D') en ALBRET (d')

fonctionnent chez moi avec

Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -4)) || '(d'')' where CHAR_LENGTH (NOM) > 5 and SUBSTRING (NOM from (CHAR_LENGTH(NOM)-3) for 4)  = '(D'')'

attention le '' et bien deux fois le ' c'est pour cela que dans les longueurs (-4 et -3) il ne compte que pour une position

désolé pour mon silence ... j'étais .... ailleurs
Titre: Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 11 Juin 2009 à 17:10:39
Bonjour,
 
Et bien voilà une bonne nouvelle !  :)
 
Merci bien, j'ai fait l'essai et ça fonctionne !
 
Ne sois pas désolé pour le silence, en généalogie il faut savoir attendre et encore merci.
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Henri91 le 11 Août 2009 à 10:54:06
Salut à tous,
 
Venant d'être confronté au problème :
D'ALBIGNAC
au lieu de :
d'ALBIGNAC
et D'ALESSIO
 
J'ai essayé toutes les astuce (sauf modif des requettes BOA !) y compris la double ' ,ou " mais ça ne marche pas, ou alors j'ai mal compris !
 
PS : Bob, c'est où qu'on trouve ça :
Update INDIVIDU SET NOM = SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -4)) || '(d'')' where CHAR_LENGTH (NOM) > 5 and SUBSTRING (NOM from (CHAR_LENGTH(NOM)-3) for 4)  = '(D'')'
 
J'ai aussi oublier de préciser que je n'avais eu aucun problème avec :
d'ALBERT
et d'ALLOIS
Il y a pas mal de temps et qu'ils sont toujours avec un d'
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 11 Août 2009 à 12:33:13
    Bonjour
 
 un coup de pot ... car pas beaucoup d'internet cet été
 
 l'Update .... c'est du SQL pur sucre a passer dans le BOA et qui cri même quand cela à fonctionner (message de violation dans le module DLL_BOA.dll)
 
 mais avec sauvegarde avant et après ... on peut faire des trucs osé sans trop de risque 
 il est possible d'utiliser en lieu et place du BOA IBOconsole entre autre mais ... c'est toujours du SQL
 
 l'aide sur SQL donné par PCM dans la barre à ? est correcte
 
 En français l’ordre veux dire
 
Mise à jour dans la table INDIVIDU de la colonne NOM pour être égal  a la colonne NOM de la position 1 pour une longueur de la longueur de la colonne NOM moins 4  suivie de (d’)  seulement pour les colonnes NOM de plus de 5 caractères et dont les 4 deniers caractères de la colonne NOM sont (D’)
 
 
Donc
 
ALBIGNAC (D’) devient ALBIGNAC (d’)
 
Pour garder la particule devant le nom il faut inverser les wagons
 
Update INDIVIDU SET NOM =  '(d'')' || SUBSTRING (NOM from 1 for (CHAR_LENGTH(NOM) -4)) where CHAR_LENGTH (NOM) > 5 and SUBSTRING (NOM from 1 for 4)  = '(D'')'
 
D'ALBIGNAC en d'ALBIGNAC
 
Mai en me relisant …. Je ne suis pas sur d’etre aussi clair (et sans ti punch)
 
Bon usage quand même 

Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Henri91 le 11 Août 2009 à 13:05:23
Merci Bob....,
 
J'ai a peu près compris, mais je n'irais pas "tripoter" le SQL. dans le BOA, ,je ne vais que pour des modif de masse de patro.
 
Par contre pourquoi j'ai :
 
d'ALBERT et d'ALLOIS
 
et je ne peut avoir :
 
D'ALESSIO et D'ALBIGNAC, avec le d' minuscule, alors que j'ai fait la même manipe dans les 2 cas
Voir là :
 http://www.cijoint.fr/cjlink.php?file=cj200908/cijDnhmdg3.jpg (http://www.cijoint.fr/cjlink.php?file=cj200908/cijDnhmdg3.jpg)
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Bob du Vaucluse le 11 Août 2009 à 19:29:20
bonsoir

par défaut et il y quelques versions Ancestrolgie forçait en majuscule les noms (préférences)

pour forcer un bout de nom en minuscule je ne sauvegardais pas, je passais par le repertoire et le message me demandant si je voulais la sauvegarde me gardait mon choix

Depuis certaines particules ne passent pas automatiquement en majuscule MAIS ....

Et ma manipe de passage par le repertoire risque de ne plus marcher car depuis de ou trois versions Ancestrologie "paume" les modifs faites dans les fiches dans certaines mises à jours ALORS (merci PCM de voir y aussi d'autre postes pour ce probleme)

Il va faloir quand même se frotter au BAO avec une petite copie de la base avant au cas ou ...

bonsoir
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Joël AUGUSTE le 11 Août 2009 à 19:44:49
Bonsoir,
 
Pour pouvoir enregistrer tel que tu as écrit, il faut être en fenêtres incrustées. Ainsi, si tu passe de la fiche au répertoire par exemple, tu auras la question si tu souhaites enregistrer et l'enregistrement sera celui que tu as écrit (pas de majuscules automatiques pour les noms par exemple).
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Bruno T. le 11 Août 2009 à 23:56:08
Vous oubliez tout de même qu'Ancestro a une assistance à la saisie des particules
Pour ce cas il faut rajouter d' dans les particules, menu configuration/particules...
Dans ce cas les d' resteront d' même si les noms sont convertis en majuscules (suivant les préférences de saisie dans Configuration/Préférences Générales/Options de saisie)
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Henri91 le 12 Août 2009 à 00:17:23
Salut Bruno,
 
Ce serait bien si tu allais jusqu'au bout de la manipe !...
 
Moi quand je clique sur "particule" j'ai
une fenetre vide avec + et -
quand je clique sur +
je peut ecrire -d'-
mais après j'ai le choix :
importer ou exporter !!!
sur l'un comme sur l'autre je ne comprends rien, une fois ouverts, et donc plutot que de faire une betise, je m'abstient.
 
et je fait quoi !...
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Bruno T. le 12 Août 2009 à 00:47:20
tu t'arrêtes à d' et tu fermes, ça suffit.

sinon: exporter permet de générer un fichier texte pour sauvegarder sa liste de particules, ou la donner à un autre utilisateur, importer permet de restituer depuis un fichier texte, j'avais jamais creuser de ce coté  :oops:
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Henri91 le 12 Août 2009 à 09:39:11
Salut Bruno,
 
C'est effectivement, ce que je faisait, puis quand j'allais sur la ficheremplacer le D' par d' et que je cliquais sur : enregistrer il m'affichait en rouge :
 
lock conflict on no wait transaction deadlock
 
Donc je fermais en utilisant la x aujourd'hui j'ai fermé en cliquant sur OK et effectivement le d' s'enregistre !.
Titre: [résolu] Mise à jour de masse - Correction d'un patronyme
Posté par: Bruno T. le 13 Août 2009 à 00:35:06
J'ai aussi eu ce lock conlict avec la meme manip, remplacer un D' par un d', on a donc quand même un bug qui traine par la.....