Partager via


Accès multi-utilisateur et RDA

Dans Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) l'accès multi-utilisateur est toujours disponible, notamment lorsque vous utilisez 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.

ms172998.note(fr-fr,SQL.100).gifRemarque :
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 en 2. La valeur 1 a été stockée dans une colonne de suivi utilisée par RDA, si bien qu'en cas d'envoi, 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 lance l'opération d'envoi (push) et la nouvelle valeur, à savoir 2, est envoyée dans le message de téléchargement à la base de données SQL Server avec la valeur de recherche 1. Cependant, si la nouvelle valeur a été modifiée lors de la synchronisation, la colonne de suivi ne modifie pas la valeur de recherche de 1 en 2 vu que l'envoi n'est pas terminé. 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).