Maison > base de données > tutoriel mysql > Pourquoi mon serveur SQL ne peut-il pas instancier le fournisseur OLE DB pour les exportations de serveur lié vers Excel ?

Pourquoi mon serveur SQL ne peut-il pas instancier le fournisseur OLE DB pour les exportations de serveur lié vers Excel ?

Susan Sarandon
Libérer: 2024-12-20 20:40:10
original
472 Les gens l'ont consulté

Why Can't My SQL Server Instantiate the OLE DB Provider for Linked Server Exports to Excel?

Impossible d'instancier le fournisseur OLE DB pour le serveur lié

Problème :

Lors de la tentative de exporter des données d'une table vers Excel à l'aide d'une requête T-SQL, l'erreur "Impossible de créer une instance du fournisseur OLE DB" Microsoft.Jet.OLEDB.4.0 pour le serveur lié null" se produit.

Cause :

Cette erreur se produit généralement lorsque :

  • Le l'utilisateur ne dispose pas des autorisations suffisantes pour accéder au dossier temporaire utilisé par OPENROWSET.
  • Le fournisseur OLE DB 32 bits (Microsoft.Jet.OLEDB.4.0) ne peut pas être chargé en cours de processus sur un serveur SQL 64 bits.

Solution pour serveur SQL 64 bits :

  1. Téléchargez et installez Microsoft.ACE.OLEDB.12.0 pour Windows 64 bits.
  2. Accordez l'accès au répertoire temporaire (C:WindowsServiceProfilesNetworkServiceAppDataLocalTemp pour un compte de service réseau) au compte exécutant SQL Server.
  3. Activez les requêtes distribuées ad hoc et configurez Microsoft.ACE.OLEDB propriétés :

    SP_CONFIGURE 'show advanced options', 1;
    GO
    RECONFIGURE;
    SP_CONFIGURE 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    Copier après la connexion
  4. Enregistrer msexcl40.dll :

    regsvr32 C:\Windows\SysWOW64\msexcl40.dll
    Copier après la connexion

Supplémentaire Remarques :

  • Pour SQL Server 2014 et versions ultérieures, utilisez « DynamicParameters » au lieu de « DynamicParam » dans la commande EXEC sp_MSset_oledb_prop.
  • Assurez-vous que l'utilisateur exécutant la requête dispose des privilèges nécessaires, tels que « IMPERSONATE » et "ALTER TOUT SERVEUR LIÉ."
  • Si Vous rencontrez toujours des problèmes, vérifiez si « MessageBoxText » est défini sur « 3 » dans le gestionnaire de configuration SQL Server sous « Paramètres du fournisseur OLE DB ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal