Partager via


Accès multi-utilisateur et RDA

Dans Microsoft SQL Server Compact 3.5 l'accès multi-utilisateur est toujours disponible, notamment lorsque vous utilisez le service RDA (Remote Data Access). Une action d'envoi de données (push) ou d'extraction de données (pull) peut être en cours alors qu'un autre utilisateur accède à la même base de données SQL Server Compact 3.5.

Étant donné qu'une opération d'extraction de données (pull) nécessite que la table locale spécifique ne soit pas présente au moment de l'extraction, mais soit créée au cours du processus d'extraction des données à partir du serveur, la table extraite n'est accessible qu'une fois l'opération d'extraction terminée. Lorsque des données sont envoyées au serveur, si des modifications sont apportées après le début de l'envoi, ces modifications seront envoyées au serveur lors de la prochaine opération d'envoi. Si les données du serveur doivent être actualisées après un envoi particulier au serveur, l'application n'autorise pas que des modifications soient apportées à la table tant que les opérations d'envoi et d'extraction ne sont pas terminées. Ceci permet d'éviter de perdre des modifications lors de la suppression de la table.

L'autorisation d'accès de plusieurs connexions à une base de données SQL Server Compact 3.5 permet d'offrir aux développeurs un modèle de développement plus simple. Étant donné que le moteur de base de données SQL Server Compact 3.5 gère les requêtes de plusieurs applications, ou plusieurs requêtes de connexion d'une seule application, les développeurs n'ont pas besoin de planifier l'accès aux bases de données. Lorsque plusieurs connexions sont nécessaires, le moteur de base de données SQL Server Compact 3.5 verrouille les données appropriées en fonction des opérations requises.

Notes

Certains scénarios de plateformes 64 bits ne prennent pas en charge l'accès simultané à un fichier de base de données avec des versions antérieures de SQL Server Compact. Pour plus d'informations sur les composants 64 bits, consultez Gestion d'applications de base de données 64 bits.

Modification de la clé primaire lors de la synchronisation

Pour une table suivie par RDA, les mises à jour, insertions et suppressions sont suivies sur la base de la clé primaire. L'accès multi-utilisateur étant autorisé sur les colonnes de clé primaire, il est important que les valeurs de ces colonnes ne soient pas modifiées lors des synchronisations.

Avertissement   Bien qu'il soit rarement nécessaire de modifier une valeur des colonnes de clé primaire, si cette modification intervient lors de la synchronisation d'une table dans laquelle la clé primaire a été modifiée, cela risque d'entraîner une erreur ou la perte de données.

Exemple

Dans la Table A, une valeur de clé primaire est modifiée de 1 à 2. La valeur 1 a été stockée dans une colonne de suivi utilisée par le service RDA, si bien qu'en cas de transmission de type push, SQL Server Compact 3.5 sait quelle valeur utiliser pour les critères de recherche lors de la mise à jour des données vers la nouvelle valeur.

L'application initialise l'opération de transmission de type push et la nouvelle valeur de 2 est envoyé dans le message de chargement vers la base de données SQL Server avec la valeur de recherche 1. Toutefois, si la nouvelle valeur de données est modifiée pendant la synchronisation, alors, la colonne de suivi ne modifiera pas sa valeur de recherche de 1 à 2, parce que la transmission de type push n'est pas terminée. Si l'envoi réussit, le prochain envoi de cette ligne échouera toujours. Les critères de recherche de 1 ne sont plus valides étant donné que la clé primaire a été modifiée de 1 en 2 sur le serveur.

Pour plus d'informations sur l'accès multi-utilisateur, consultez Accès multi-utilisateur. Pour plus d'informations sur le verrouillage, consultez Verrouillage (SQL Server Compact).