Numéro d'article: 837221 - Dernière mise à jour: mardi 27 novembre 2007 - Version: 2.6

Vous ne pouvez pas déboguer une procédure stockée SQL Server plusieurs fois lors du débogage du code .NET Framework géré dans Visual Studio 2005 ou dans Visual Studio .NET

important Cet article contient des informations sur la modification du Registre. Avant de modifier le Registre, veillez à sauvegarder et assurez-vous que vous savez comment restaurer le Registre si un problème se produit. Pour savoir comment sauvegarder, restaurer et modifier le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
256986  (http://support.microsoft.com/kb/256986/ ) Description de du Registre Microsoft Windows
Agrandir tout | Réduire tout

Symptômes

Vous pourrez pas déboguer une procédure stockée Microsoft SQL Server plusieurs fois à partir du code natif ou du code géré de .NET Framework si les conditions suivantes sont remplies :
  • La fonction de regroupement de connexion est activée pour la connexion de base de données SQL Server que votre application utilise.
  • Votre application utilise une connexion reopened de la liste de connexion.

Cause

Groupement de connexions est une technique pour améliorer les performances de l'application. Lorsque l'application ferme la connexion de données, la connexion à l'ordinateur qui exécute SQL Server est fermée pas complètement. La connexion est maintenue dans un pool de manière à ce la connexion peut être réutilisée si l'application tente de rouvrir plus tard la connexion. Toutefois, lorsqu'une connexion est rétablie via le groupement de connexions, le débogage SQL n'est réactivé pas.

Contournement

Pour contourner ce problème, désactivez la connexion de groupement de fonctionnalité. Pour cela, appliquez l'une des méthodes suivantes :
  • à travers l'administrateur de source de données ODBC
    1. Cliquez sur Démarrer , puis cliquez sur Exécuter .
    2. Dans la zone Ouvrir , tapez odbcad32 et puis cliquez sur OK .

      La boîte de dialogue Administrateur de sources de données ODBC s'affiche.
    3. Cliquez sur l'onglet groupement de connexions .
    4. Faites défiler pour localiser le SQL Server dans la colonne Nom de la liste de pilotes ODBC et puis double-cliquez sur SQL Server .

      La boîte de dialogue attributs de mise en pool connexion ensemble s'affiche.
    5. Sélectionnez ne pas réserve de connexions à ce pilote , puis cliquez sur OK .
    6. Dans la boîte de dialogue Administrateur de sources de données ODBC , cliquez sur OK .
  • dans le Registre

    Avertissement Si vous utilisez l'Éditeur du Registre de façon incorrecte, vous pouvez générer des problèmes sérieuses pouvant vous obliger à réinstaller votre système d'exploitation. Microsoft ne peut pas garantit que vous pouvez résoudre les problèmes résultant de l'utilisation incorrecte de l'Éditeur du Registre. Utilisez l'Éditeur du Registre à vos risques et périls.

    Le fournisseur de données de Microsoft .NET Framework pour SQL Server désactive automatiquement sur le groupement de connexions pour les applications Microsoft ADO.NET.

    Pour activer désactiver le groupement de connexions, utilisez l'Éditeur du Registre pour passer la valeur de Registre suivante de 0xffffffff à 0xfffffffe :
    HKEY_CLASSES_ROOT\CLSID\{0C7FF16C-38E3-11d0-97AB-00C04FC2AD98}\OLEDB_SERVICES
    note Si vous utilisez cette méthode, vous devrez peut-être redémarrer l'ordinateur client.

    Pour obtenir des informations sur les autres paramètres, consultez la documentation OLEDB.
  • dans l'application appelante
    • Pour contrôler le groupement de connexions, définissez le mot clé Pooling dans la chaîne de connexion qui permet de vous connecter à l'ordinateur qui exécute SQL Server. Par exemple, utiliser la chaîne de connexion suivante pour désactiver le groupement de connexions pour un ordinateur qui exécute SQL Server :
      « Source de données = MySQLServer ; initial catalog = MyDatabase ; mot de passe = MyPassword; ID d'utilisateur = MyUserName ; regroupement = False ; »
      note Dans cette chaîne de connexion exemple, MySQLServer, MyDatabase, MyPassword et MyUserName sont des espaces réservés pour les valeurs correspondantes de votre système.
    • Le fournisseur natif OLEDB gère le groupement de connexions dans OLEDB. Par défaut, groupement de connexions est activé. Par conséquent, vous ne devez pas faire pour utiliser le groupement de connexions. Toutefois, si vous travaillez avec une base de données qui ne prend pas en charge le regroupement de connexions, tels que Microsoft Access, vous pouvez désactiver groupement de connexions sans modification du Registre. Pour ce faire, utiliser le mot-clé de chaîne de connexion suivantes :
      services OLE DB =-4
      Par exemple, vous pouvez utiliser la chaîne de connexion suivante :
      ? Provider=SQLOLEDB.1 OLE DB services =-4 ; mot de passe = MyPassword; code d'utilisateur = MyUserName ; initial catalog = MyDatabase ; la source de données = MySQLServer ?

Statut

Ce comportement est voulu par la conception même du produit.

Plus d'informations

Certains plus connexion chaîne mots-clés utilisés pour contrôler le groupement de connexions :
  • Taille maximale du pool : par défaut, la valeur est 100 . Vous souhaiterez peut-être augmenter cette valeur pour les applications d'entreprise.
  • Taille minimale du pool : par défaut, les valeurs est 0 . En règle générale, vous ne devrez pas augmenter cette valeur.
  • Inscription : Lorsque cette valeur est définie sur True , les connexions de la liste sont enrôlées dans le contexte de transaction distribuée actuel s'il existe un contexte de transaction distribuée.

Références

Pour plus d'informations sur SQL débogage de composants et sur la configuration débogage SQL, reportez-vous aux Web MSDN (Microsoft Developer Network) sites adresses suivantes :
http://msdn2.microsoft.com/en-us/library/Aa292301(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/Aa292301(VS.71).aspx)

http://msdn2.microsoft.com/en-us/library/s4sszxst(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/s4sszxst(vs.71).aspx)
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
318606  (http://support.microsoft.com/kb/318606/ ) Pilote ODBC SQL Server réinitialise les attributs de connexion dans le groupement de connexions
166083  (http://support.microsoft.com/kb/166083/ ) Comment activer le groupement de connexions dans une application OLE DB
815116  (http://support.microsoft.com/kb/815116/ ) Impossible de déboguer une procédure stockée SQL Server dans Visual Studio .NET
830118  (http://support.microsoft.com/kb/830118/ ) Message d'erreur « Délai d'attente expiré » lorsque vous exécutez une application Visual Studio.NET 2003

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Éducation
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Éducation
  • Microsoft ADO.NET 2.0
Mots-clés : 
kbmt kbtshoot kbvs2005swept kbvs2005applies kbregistry kbtsql kbstoredproc kbsqlclient kbmanagedprovidersql kbmanaged kbenable kbdebug kbprb KB837221 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 837221  (http://support.microsoft.com/kb/837221/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
 

Traductions disponibles