Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La base de données OLE DB (Object Linking and Embedding Database) est une technologie d’accès aux données Microsoft utilisée pour connecter des applications à différentes sources de données à l’aide de fournisseurs OLE DB. La résolution des problèmes liés aux installations et validations des pilotes OLE DB peut être complexe, mais elle est essentielle pour l’interaction transparente de la base de données. Ce guide de résolution des problèmes vise à fournir des insights sur l’installation, la validation et la résolution des problèmes liés aux pilotes OLE DB.
À propos des fichiers UDL
L’une des méthodes les plus simples pour tester un fournisseur OLE DB consiste à utiliser le fichier UDL (Universal Data Link). Créez un fichier texte dans l’Explorateur Windows et renommez-le pour avoir un fichier texte . Extension de fichier UDL . Vérifiez que les extensions de fichier sont activées pour apporter la modification. Pour plus d’informations, consultez Tester la connectivité OLE DB à SQL Server à l’aide d’un fichier UDL
Double-cliquez sur le fichier pour ouvrir une boîte de dialogue dans laquelle vous pouvez voir les fournisseurs installés et tester leurs connexions.
Note
Si vous sélectionnez OK dans la boîte de dialogue, vous pouvez ouvrir le fichier UDL dans le Bloc-notes pour afficher les chaîne de connexion que vous pouvez utiliser dans votre application. Par exemple :
Provider=SQLNCLI11.1;Integrated Security="";Persist Security Info=False;User ID=sa;Initial Catalog=northwind;Data Source=tcp:SQLProd01.contoso.com,1433;Initial File Name="";Server SPN=""
L’interface utilisateur du fichier UDL est fournie par OLEDB32.DLL et hébergée dans RUNDLL32.DLL.
Pour les systèmes 32 bits ou pour les fournisseurs 64 bits sur des systèmes 64 bits, utilisez la commande suivante :
Rundll32.exe "C:\Program Files\Common Files\System\OLE DB\oledb32.dll",OpenDSLFile C:\test.udl
Pour les fournisseurs 32 bits sur les systèmes 64 bits, utilisez la commande suivante :
C:\Windows\SysWOW64\Rundll32.exe C:\PROGRA~2\COMMON~1\System\OLEDB~1\oledb32.dll,OpenDSLFile C:\test.udl32
Le . L’extension de fichier UDL est mappée à la première commande. Pour la seconde, vous pouvez simplifier les choses en exécutant une invite de commandes 32 bits, puis en exécutant START C:\TEMP\TEST.UDL
pour tester des fournisseurs 32 bits. Encore plus simple est de mapper le . Extension de fichier UDL32 à la commande 32 bits.
Mappage d’extension de fichier .udl32 32 bits
Si vous utilisez fréquemment des fournisseurs 32 bits, vous pouvez mapper l’extension de fichier .udl32 pour lancer la boîte de dialogue UDL 32 bits. Effectuez les étapes suivantes :
Copiez le script dans le Bloc-notes et enregistrez-le en tant que udl32.reg.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.UDL32] @="ft000001" [HKEY_CLASSES_ROOT\ft000001] @="Microsoft Data Link 32" "BrowserFlags"=dword:00000008 "EditFlags"=dword:00000000 [HKEY_CLASSES_ROOT\ft000001\shell] @="open" [HKEY_CLASSES_ROOT\ft000001\shell\open] [HKEY_CLASSES_ROOT\ft000001\shell\open\command] @="C:\\Windows\\SysWOW64\\Rundll32.exe C:\\PROGRA~2\\COMMON~1\\System\\OLEDB~1\\oledb32.dll,OpenDSLFile %1" [HKEY_CLASSES_ROOT\ft000001\shell\open\ddeexec]
Double-cliquez sur le fichier .reg, puis vous pouvez créer un fichier avec une extension de fichier .udl32. Par exemple, test.udl32. Et il lance la boîte de dialogue UDL 32 bits. Par exemple :
Valider un fournisseur OLE DB
La première étape de validation d’un fournisseur consiste à déterminer si le nom apparaît dans la liste des fournisseurs installés d’une boîte de dialogue UDL 64 bits ou 32 bits, comme indiqué ci-dessus. Si ce n’est pas le cas, vous devez réinstaller le fournisseur ou consulter le fournisseur.
Vous pouvez également suivre l’emplacement du pilote dans le Registre. Le nom du pilote est un COM ProgID et vous pouvez le trouver dans HKEY_CLASSES_ROOT.
Dans l’image suivante, vous pouvez voir le mappage entre le ProgID SQLNCLI11.1 et le nom du fournisseur SQL Server Native Client 11.0.
Le ProgID des fournisseurs 32 bits et 64 bits apparaît sous cette clé.
En plus de SQLNCLI11.1, il existe également un ProgID appelé SQLNCLI11. C’est pourquoi un développeur de fournisseurs peut autoriser plusieurs versions du même fournisseur à être installées côte à côte, chacune avec un suffixe numérique différent. Le nom non numéroté est progID indépendant de la version. Les applications peuvent pointer vers ce point et être redirigées vers la dernière version du fournisseur.
À toutes les fins et intentions, ces deux noms ProgID différents doivent être équivalents. Toutefois, il y a eu quelques cas où ils n’étaient pas. Les applications utilisant le nom indépendant de la version ne peuvent pas se connecter, mais elles peuvent se connecter si elles utilisent le ProgID versionné. La raison est que les deux entrées pointent vers des valeurs CLSID différentes, qui est la façon de trouver la DLL du fournisseur.
Il CLSID
s’agit du GUID COM. L’infrastructure COM localise le GUID à partir du ProgID. Il recherche ensuite sous la clé une clé dont le HKEY_CLASSES_ROOT\CLSID
GUID correspond au nom de la clé :
La InProcServer32
valeur pointe vers la DLL du fournisseur.
Pour les fournisseurs 32 bits, COM utilise le même GUID, mais le recherche sous HKEY_CLASSES_ROOT\Wow6432Node\CLSID
.
Dans ce cas, le fournisseur se trouve dans le dossier SysWow64 .
Note
Ces exemples proviennent de machines 64 bits. Sur les machines 32 bits, il n’y a pas Wow6432Node
dans le Registre.
Voici les chemins d’accès à SQL Native Client 11.0 dans l’Éditeur de Registre pour les machines 64 bits :
HKEY_CLASSES_ROOT\SQLNCLI.1\CLSID
HKEY_CLASSES_ROOT\CLSID\<guid>\InProcServer32
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\<guid>\InProcServer32
Voici les chemins d’accès dans l’Éditeur de Registre pour les machines 32 bits :
HKEY_CLASSES_ROOT\SQLNCLI.1\CLSID
HKEY_CLASSES_ROOT\CLSID\{guid}\InProcServer32
Prise en charge des fournisseurs tiers
La prise en charge des fournisseurs OLE DB tiers est limitée à la validation des points ProgID sur un CLSID valide et que la InProcServer32
sous-clé pointe vers la DLL correcte. Si le chemin d’accès est incorrect ou si l’entrée de Registre n’existe pas, réinstallez le fournisseur ou contactez le fournisseur. Si les fichiers existent mais que les entrées du Registre ne le font pas, vous pouvez inscrire manuellement le fournisseur à l’aide REGSVR32
de . Pour inscrire une DLL COM, exécutez la commande suivante à l’aide d’une invite de commandes avec élévation de privilèges :
Regsvr32 sqlncli11
S’il existe des versions 32 bits et 64 bits du fournisseur, exécutez la commande sur les deux DLL. Utilisez une invite de commandes 32 bits pour inscrire la DLL 32 bits.