Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
N’oubliez pas ce qui suit lors de l’utilisation des codes de mise à jour XML :
Si vous utilisez un code de mise à jour pour une opération d’insertion avec une seule paire de <blocs avant> et après>, le bloc avant peut< être omis.>< À l’inverse, en cas d’opération de suppression, le <bloc après> peut être omis.
Si vous utilisez un code de mise à jour avec plusieurs <blocs avant> et <après> dans la balise de <synchronisation> , les <blocs avant> et <après> doivent être spécifiés pour former <avant> et <après> des paires.
Les mises à jour d’un code de mise à jour sont appliquées à la vue XML fournie par le schéma XML. Par conséquent, pour que le mappage par défaut réussisse, vous devez spécifier le nom du fichier de schéma dans le code de mise à jour ou, si le nom de fichier n’est pas fourni, les noms d’éléments et d’attributs doivent correspondre aux noms de table et de colonne dans la base de données.
SQLXML 4.0 exige que toutes les valeurs de colonne d’un code de mise à jour soient explicitement mappées dans le schéma (XDR ou XSD) fournie pour composer la vue XML pour ses éléments enfants. Ce comportement diffère des versions antérieures de SQLXML, qui autorisait une valeur pour une colonne non mappée dans le schéma s’il était implicite dans le cadre de la clé étrangère dans une
sql:relationshipannotation. (Notez que cette modification n’affecte pas la propagation des valeurs de clé primaire aux éléments enfants, qui se produisent toujours pour SQLXML 4.0 si aucune valeur n’est spécifiée explicitement pour l’élément enfant.Si vous utilisez un code de mise à jour pour modifier des données dans une colonne binaire (par exemple, le type de données SQL Server
image), vous devez fournir un schéma de mappage dans lequel le type de données SQL Server (par exemple)sql:datatype="image"et le type de données XML (par exemple,dt:type="binhex"oudt:type="binbase64) doivent être spécifiés. Les données de la colonne binaire doivent être spécifiées dans le code de mise à jour ; l’annotationsql:url-encodespécifiée dans le schéma de mappage est ignorée par le code de mise à jour.Lorsque vous écrivez un schéma XSD, si la valeur que vous spécifiez pour le ou
sql:fieldl’annotationsql:relationinclut un caractère spécial, tel qu’un espace (par exemple, dans le nom du tableau « Détails de l’ordre »), cette valeur doit être placée entre crochets (par exemple, « [Détails de l’ordre] »).Lorsque vous utilisez des codes de mise à jour, les relations de chaîne ne sont pas prises en charge. Par exemple, si les tables A et C sont liées via une relation de chaîne qui utilise la table B, l’erreur suivante se produit lors de la tentative d’exécution et d’exécution du code de mise à jour :
There is an inconsistency in the schema provided.Même si le schéma et le code de mise à jour sont correctement formés et correctement formés, cette erreur se produit si une relation de chaîne est présente.
Les codes de mise à jour n’autorisent pas le passage de données de
imagetype en tant que paramètres pendant les mises à jour.Les types blob (binary large object) tels
text/ntextque les images ne doivent pas être utilisés dans le bloc avant> lors de l’utilisation des codes de mise à jour, car cela les inclut pour une utilisation dans le< contrôle d’accès concurrentiel. Cela peut entraîner des problèmes avec SQL Server en raison des limitations de comparaison pour les types BLOB. Par exemple, le mot clé LIKE est utilisé dans la clause WHERE pour comparer les colonnes dutexttype de données . Toutefois, les comparaisons échouent dans le cas des types BLOB où la taille des données est supérieure à 8K.Les caractères spéciaux dans les
ntextdonnées peuvent entraîner des problèmes avec SQLXML 4.0 en raison des limitations de comparaison pour les types BLOB. Par exemple, l’utilisation de « [Serializable] » dans le bloc avant> d’un code de mise à jour lorsqu’elle est utilisée dans la< vérification de la concurrence d’une colonne dentexttype échoue avec la description d’erreur SQLOLEDB suivante :Empty update, no updatable rows found Transaction aborted
Voir aussi
Considérations relatives à la sécurité du code de mise à jour (SQLXML 4.0)