Probleme de Requete parametree xml/xpath
Probleme: Mon probleme est que je ne parviens pas à passer des parametres à une variable xml avec xpath.
Situation: je veux executer une procedure stockee qui prend en entree 4 variables et qui me permettra de modifier la valeur de l'attribut @name de mon extrait xml @dt.
@AnVal represente l'ancienne valeur de l'attribut @name
et @NouvVal represente la nouvelle valeur.
Voici mon extrait xml @dt :
Citation:
<user name="uriel" type="root" folder-id="root">
<folder name="Mes" type="." folder-id="root\." />
<folder name="Nouveaux documents" type="recent" folder-id="root\recent" />
<folder name="Travail" type="user" folder-id="root\Travail" />
<folder name="Public" type="public" folder-id="root\Public" />
</user>
Voici la requete xpath:
set @dt.modify('replace value of (/user/folder[@name =@AnVal ]/@name)[1] with @NouvVal ')
Voici la procedure stockee avec la requete xpath:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| ALTER PROCEDURE [dbo].[modify_folders]
(
@id_user int, @dt xml, @AnVal NVarChar(50), @NouvVal NVarChar(50)
)
AS -- la fonction XQuery modify affecte une partie seulement de l'extrait XML
set @dt.modify('replace value of (/user/folder[@name =@AnVal ]/@name)[1] with @NouvVal ')
-- mettre a jour la table User
update dbo.[user] set
user_folders=@dt
where id_user=@id_user
RETURN |
Probleme ciblé: Le passage de parametre @name =@AnVal ne marche pas, ainsi que l affectation de la nouvelle valeur @NouvVal .
J'espère m'etre fais comprendre...
Aidez-moi s'il vous plait.