SQL Server: Das Datenquellenobjekt des OLE DB-Providers "Microsoft.ACE.OLEDB.12.0" für den Verbindungsserver "(null)" kann nicht initialisiert werden

9

Ich versuche, die folgende Abfrage auszuführen:

%Vor%

Aber ich bekomme diesen Fehler:

%Vor%

Ich habe Folgendes versucht:

%Vor%

Und:

%Vor%

Wenn ich zu "Server Objects" gehe - & gt; 'Verknüpfte Server' - & gt; "Providers", Microsoft.ACE.OLEDB.12.0 ist aufgeführt.

Access-Datenbankmodul x64 ist installiert, alle Office-Produkte sind 64-Bit und mein SQL Server ist auch 64-Bit.

Wenn es darauf ankommt, haben alle Benutzer Zugriff auf den Ordner Temp im Ordner Benutzer.

(Dies sind alle Vorschläge, die ich in ähnlichen Antworten auf diese Frage gefunden habe)

Bearbeiten: Verwenden von SQL Server 2014.

    
S L 13.12.2013, 17:33
quelle

3 Antworten

10

Stellen Sie sicher, dass Sie die Excel-Tabelle schließen und SSMS als Administrator ausführen.

    
Vincent 14.05.2014 07:10
quelle
2

Ich habe von diesem Blog die beiden fehlenden Schritte gefunden mach es für mich funktionierend.

  

1) Überprüfen Sie die Berechtigungen für den Ordner "Temp"

     

Dies wird benötigt, da der Provider den temporären Ordner beim Abrufen der Daten verwendet. Der Ordner kann abhängig davon, ob Sie ein lokales Systemkonto oder ein Netzwerkdomänenkonto verwenden, eines der folgenden sein.

     

Für Netzwerkkonten ist der Ordner
  : \ Windows \ Dienstprofile \ NetworkService \ AppData \ Local \ Temp

     

und für das lokale System Konto seine
  : \ Windows \ Dienstprofile \ LocalService \ AppData \ Local \ Temp

     

Klicken Sie mit der rechten Maustaste auf diesen Ordner und geben Sie ihm Lesezugriff auf das Konto, das den Code ausführt.

     

2) Überprüfen Sie den zugewiesenen MemToLeave-Speicherbereich

     
  • Öffnen Sie den SQL Server-Konfigurationsmanager - & gt; Dienstleistungen - & gt; SQL Server-Dienst.
  •   
  • Klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften.
  •   
  • Gehen Sie zum erweiterten Tab und fügen Sie -g512 hinzu; zu Startparameter Eigenschaft und es wird das Problem lösen.
  •   

Sie können es auch ohne AllowInProcess arbeiten lassen, wenn Sie den Anweisungen in Dieser MSDN-Artikel . Die wichtigsten Anweisungen sind:

  

Um verknüpfte Serverabfragen ausführen zu können, müssen Sie RPC OUT in den verknüpften Servereigenschaften ebenfalls auf true setzen.

     

Berechtigungen zum Einrichten des Verbindungsservers mit dem prozessexternen Anbieter erforderlich:

     

Überprüfen Sie die Einstellungen in DCOMCNFG: Start - & gt; Ausführen - & gt; Dcomcnfg

     
  1. Komponentendienste - & gt; Mein Computer --- & gt; Eigenschaften
      Vergewissern Sie sich, dass die folgenden Optionen auf der Registerkarte "Standardeigenschaften" festgelegt sind:

         
    • "Verteilte COM auf diesem Computer aktivieren" ist aktiviert.
    •   
    • Standardauthentifizierung = Verbinden.
    •   
    • Standardidentitätswechselebene = Identifizieren oder Annehmen der Identität.
    •   
  2.   
  3. Komponentendienste - & gt; Mein Computer - & gt; DCOM-Konfiguration - & gt; MSDAINITIALISIEREN

         
    • Klicken Sie mit der rechten Maustaste auf MSDAINITIALIZE - & gt; Eigenschaften - & gt; Sicherheit
    •   
    • Fügen Sie das SQL Server-Dienstkonto (bei Verbindung mit dem SQL-Server mit SQL-Anmeldung) oder das Windows-Benutzerkonto unter "Start- und Aktivierungsberechtigungen", "Zugriffsberechtigungen" und "Konfigurationsberechtigungen" hinzu.
    •   
    • Erteilen Sie diesen Konten die vollen Rechte.
    •   
  4.   
  5. Starten Sie den Server neu

  6.   
    
kjbartel 25.11.2015 08:10
quelle
0

Ich habe dieses Problem auch gemeistert und die Schritte wie bei Ihnen gemacht. Endlich habe ich den Fehler als Ihren gefunden. Am Ende benutze ich einen SuperUser Account und benutze dieses Skript wie folgt und das Problem wurde behoben.

%Vor%     
Kevin Garnett 30.06.2015 12:01
quelle

Tags und Links