forum Ancestrologie

Ancestrologie - Le Programme => Ancestrologie - Utilisation => Discussion démarrée par: andre01 le 29 Janvier 2018 à 14:35:56

Titre: Modifier le chemin d'accès à certaines images
Posté par: andre01 le 29 Janvier 2018 à 14:35:56
Bonjour à tous,

Serait-il possible par une requête SQL de modifier le chemin d'accès à certaines images:?
Il s'agirait en fait de remplacer "c:\Program Files\Ancestrologie\Images\" par "c:\Program Files (x86)\Ancestrologie\Images\".
Il s'agit d'images utilisées dans une version précédente, mais le chemin reste ainsi noté, même si dans les caractéristiques du dossier, il a été correctement modifié.
Vu le nombre d'images concernées, il n'est pas possible de modifier cela manuellement.
Merci d'avance.

André.
Titre: Modifier le chemin d'accès à certaines images
Posté par: Bob du Vaucluse le 29 Janvier 2018 à 18:22:28
bonjour

voici quelques exemples que j'ai utilisés il y a .... longtemps

/* Changement de path dans address */
UPDATE MULTIMEDIA SET MULTI_PATH = 'D:\_GENEA_VRAC\Ancestrologie\Images\' || (substring (MULTI_PATH from 37 for 63))  where  MULTI_PATH containing  'C:\Program Files\Ancestrologie\Images\'

update MULTIMEDIA
set MULTI_PATH='D:\MONCHEMIN\' || SUBSTRING ( MULTI_PATH from CHAR_LENGTH ( 'C:\TRAVAUX\genealogie\images\' ) + 1 for CHAR_LENGTH ( MULTI_PATH )) where upper(SUBSTRING ( MULTI_PATH From 1 FOR CHAR_LENGTH ( 'C:\TRAVAUX\genealogie\images\' )))=upper('C:\TRAVAUX\genealogie\images\')

/* Path Media tout Majuscule utilise c:\divers\RENAMER.EXE pour fichiers */
UPDATE MULTIMEDIA SET MULTI_PATH = UPPER (MULTI_PATH) WHERE MULTI_PATH containing 'BLASONS'

Faire une sauvegarde de la base avant
bon usage
Titre: Modifier le chemin d'accès à certaines images
Posté par: andre01 le 29 Janvier 2018 à 19:57:48
Bonsoir Bob,

Merci beaucoup de tes exemples! Mais pourrais-tu être un plus explicite ?
La première remplace-t-elle "C:\Program Files\Ancestrologie\Images\" par "D:\_GENEA_VRAC\Ancestrologie\Images\" ? mais que veut dire ... de 37 à 63 ?
La deuxième ainsi que la troisième, je ne vois pas ce qu'elles peuvent faire.
Encore merci pour tes futures explications !

André.
Titre: Modifier le chemin d'accès à certaines images
Posté par: Bob du Vaucluse le 30 Janvier 2018 à 10:28:20
Bonjour

oui le 1er est remplacé par le second MAIS ce qui est entre guillemets n'est pas le parh complet donc je "concatène" après ce replacement  la valeur prise dans le path origine de la position 37 à 63 (la chaine remplacer a 36 chars de long et la longueur du path est 63)

la deuxième est identique à la première SAUF que l'on utilise des variables de longueur, de position ext, on n'a pas a calculerr la longueur des chaines

la troisième est la mise en MAJUSCULE de la valeur du path s'il avait été créer en minuscule dans les table est l'utilitaire (.EXE) fait la correction dans les fichiers

bonne journée
et bon usage

PS une bonne sauvegarde peut être vitale
Titre: Modifier le chemin d'accès à certaines images
Posté par: andre01 le 30 Janvier 2018 à 11:39:47
Bonjour Bob,

Merci de ces explications. J'ai tenté la deuxième en la modifiant comme suit:

update MULTIMEDIA
set MULTI_PATH='c:\Program Files\Ancestrologie\Images\' || SUBSTRING ( MULTI_PATH from CHAR_LENGTH ( 'c:\Program Files (x86)\Ancestrologie\Images\' ) + 1 for CHAR_LENGTH ( MULTI_PATH )) where upper(SUBSTRING ( MULTI_PATH From 1 FOR CHAR_LENGTH ( 'c:\Program Files (x86)\Ancestrologie\Images\' )))=upper('c:\Program Files (x86)\Ancestrologie\Images\')

mais lorsque je la lance, elle met dit : "invalid token "'rom' at position 83 of linee 2" et s'arrête.

Pourrais-tu me dire, si je n'abuse pas, où est l'erreur?
Merci d'avance,

André

PS: Je veux remplacer ":\Program Files\Ancestrologie\Images\" par "c:\Program Files (x86)\Ancestrologie\Images\"
Titre: Modifier le chemin d'accès à certaines images
Posté par: Bob du Vaucluse le 30 Janvier 2018 à 14:18:11
je ne vois rien de mauvais
et j'ai essayé chez moi pas d'erreur
peut-être le from en From ou FROM
les majuscules ont parfois leur raison
de plus vérifiez que le path "'c:\Program Files (x86)" a bien c: en minuscule car si non pas de remplacement

Select * From  MULTIMEDIA where MULTI_PATH containing 'Program Files (x86)'

et attention en fin travail la proc s’arrête sur une erreur "Violation d'accès .... module DLL_BOA.dll ......"
mais c'est OK et il faut faire "valider les modifications"
Titre: Modifier le chemin d'accès à certaines images
Posté par: andre01 le 30 Janvier 2018 à 15:06:58
Bonjour,

J'exécutais la requête SQL avec Ancestrologie ouvert. Je viens d'essayer, Ancestro fermé, par l'outil "Générateur  SQL", et ça a marché !
Toutefois j'ai toujours eu l'erreur "from", mais la requête s'est quand même exécutée avec message d'erreur en fin de course comme annoncé.
Toutes (du moins j'espère) les transformations se sont faites.
Un énorme merci.

André.