J'ai une application dans laquelle j'utilise Sql Compact 3.5 avec VS2008. J'exécute plusieurs threads dans mon application qui contacte la base de données compacte et accède à la ligne. Il sélectionne et supprime ces lignes de façon à ce qu'il sélectionne et donne à l'application 5 lignes et supprime ces lignes de la table. Il fonctionne très bien avec un seul thread mais si j'utilise plusieurs threads, c'est-à-dire si 3 threads ou plus sont en cours d'exécution, je reçois très souvent l'erreur TimeOut !!! J'ai augmenté la propriété Time out dans la chaîne de connexion mais cela ne m'a pas donné le résultat attendu. Le journal des erreurs est le suivant:SQL Server Compact a expiré en attente d'un verrou
SQL Server Compact a expiré en attente d'un verrou. Le temps de verrouillage par défaut est 2000ms pour les périphériques et 5000ms pour les ordinateurs de bureau. Le délai de verrouillage par défaut peut être augmenté dans la chaîne de connexion à l'aide de la propriété ssce: default lock timeout. [ID de session = 5, ID de thread = 4204, ID de processus = 4808, nom de table = XXX, type de conflit = x verrous (s blocs), ressource = TAB]
La requête que j'utilise pour extraire est la suivante:
" sélectionnez Top (5) * de l'ordre TableName par id, supprimer de TableName où id dans (select id supérieur (5) de l'ordre TableName par id); "
Est-il possible par que nous pouvons éviter cette exception Time Out ???????
La requête ci-dessus est une transaction dans VS2008 l'une utilisant SQLCECommand et l'autre utilisant SqlCEDataAdapter.
Toute idée !!!!!! Reply