Partager via


Limitations RDA

Dans Microsoft SQL Server Compact 3.5, le service RDA (Remote Data Access) a des limitations dans les domaines suivants :

  • Respect de la casse. À compter de SQL Server Compact 3.5 Service Pack 1, SQL Server Compact prend en charge la définition des classements respectant la casse au niveau de la base de données. Les noms d'objets (tels que les noms de tables, les mots clés de langage, les fonctions et les affichages) ne sont pas traités comme respectant la casse dans une base de données SQL Server Compact, même si le classement respecte la casse.

    Les objets sont traités différemment dans une base de données SQL Server Compact et dans une base de données SQL Server. Par exemple, deux tables, MYTABLE et mytable, sont traités comment des objets différents dans une base de données SQL Server qui respecte la casse. Les mêmes noms de tables provoquent un conflit de nom dans une base de données SQL Server Compact. Inversement, deux valeurs MYVALUE et myvalue ne provoquent plus de violation de clé primaire dans SQL Server Compact car elles sont traitées comme des valeurs différentes. Elles ne provoquent pas non plus de violation dans une base de données SQL Server qui respecte la casse. 

  • ROWGUID. Quand vous utilisez RDA pour extraire des données d'une table dans SQL Server qui participe aussi à la réplication sur le serveur, vous devez exclure la colonne système avec l'attribut ROWGUIDCOL. Par défaut, le nom de cette colonne est RowGuid.

    Par exemple, pour le paramètre SQLSelectString de la méthode Pull, utilisez SELECT CompanyName, ContactName FROM Customers au lieu de SELECT * FROM Customers.

  • Déclencheurs. SQL Server Compact 3.5 ne prend pas en charge les déclencheurs. Cependant, les déclencheurs peuvent se trouver sur la table SQL Server à partir de laquelle RDA extrait des données. Pour les tables suivies, les déclencheurs SQL Server peuvent être exécutés quand des modifications sont renvoyées à SQL Server. Il peut être nécessaire de spécifier SET NOCOUNT ON dans la logique du déclencheur. Cela indique de ne pas renvoyer le nombre de lignes affectées, car une réponse indiquant qu'aucune ligne n'est affectée provoque une erreur pour la méthode PushRDA.

  • Tables et colonnes. Pour les tables suivies, le nombre de colonnes disponibles est de 1 017 (1 024 moins sept colonnes système). Ces sept colonnes système sont protégées et utilisées pour les tables RDA suivies.

  • Colonnes calculées. La méthode Pull échoue si le jeu d'enregistrements contient des colonnes calculées.

  • Colonnes d'identité. Si vous utilisez des colonnes IDENTITY pour générer l'unicité, notez que RDA ne gère pas dynamiquement les colonnes IDENTITY. Les valeurs de départ par défaut pour une colonne IDENTITY sur l'appareil sont toujours : valeur de départ=1, incrément=1. SQL Server Compact 3.5 vous permet de modifier les valeurs d'identité SEED et d'identité INCREMENT dans la table de base de données locale au moyen de l'instruction ALTER TABLE. Cela vous permet de gérer manuellement la plage d'identité pour chaque appareil. Vous devez déterminer la valeur IDENTITY la plus élevée et ajuster la valeur de départ avant de procéder à toute insertion dans la table. Par exemple, si la valeur IDENTITY la plus élevée doit être 99, utilisez ALTER TABLE Orders ALTER COLUMN OrderId IDENTITY (100,1) pour redéfinir la valeur IDENTITY suivante à 100.

Limitations de schéma

SQL Server Compact 3.5 peut effectuer le suivi des modifications apportées à la table SQL Server Compact 3.5 résultante. En spécifiant l'option de suivi appropriée, SQL Server Compact 3.5 effectue le suivi de toutes les insertions, mises à jour et suppressions effectuées sur la table SQL Server Compact 3.5 locale. L'application peut ensuite appeler la méthode Push pour propager ces modifications vers la table SQL Server d'origine.

Les méthodes Pull et Push suivies par RDA utilisent un contrôle d'accès concurrentiel optimiste. SQL Server ne conserve pas les enregistrements extraits verrouillés. Lorsque l'application appelle la méthode Push, les modifications apportées à la base de données SQL Server Compact 3.5 locale sont appliquées sans conditions à la base de données SQL Server. Cela peut provoquer la perte des modifications effectuées par d'autres utilisateurs de la base de données SQL Server.

Utilisez les méthodes Pull et Push suivies quand les enregistrements que vous mettez à jour sont partitionnés et que les conflits sont peu probables. Par exemple, les méthodes Pull et Push suivies peuvent être utilisées dans une application effectuant le suivi de chaque technicien qui a une liste unique d'appels de service.

Vous pouvez effectuer les modifications de schéma suivantes sur une table SQL Server Compact 3.5 créée à l'aide d'une méthode Pull suivie :

  • Modifier la valeur de départ ou l'incrément de la colonne d'identité.

  • Ajouter ou supprimer des contraintes DEFAULT.

  • Ajouter ou supprimer des clés étrangères.

  • Ajouter ou supprimer des index.

  • Supprimer la table.

Vous ne pouvez effectuer aucune des modifications de schéma suivantes sur une table SQL Server pendant qu'une méthode Pull suivie est en cours d'exécution :

  • Ajouter, supprimer ou renommer des colonnes.

  • Renommer la table.

  • Supprimer une clé primaire.

  • Modifier une définition de type de données.

Pour effectuer ces modifications de schéma sur une table SQL Server, vous devez supprimer la table SQL Server Compact 3.5 et réextraire la table SQL Server modifiée.