Announcement

Collapse
No announcement yet.

Probleme mit OPENROWSET

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit OPENROWSET

    Hallo,

    ich möchte eine XLS 2007 Datei per T-SQL (MS SQL Server 2005) öffnen. Dazu benutze ich folgendes Statement

    SELECT * FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;Database=D:\Temp\test.xlsx',
    'SELECT * FROM [Tabelle1$A1:B3]');

    Dabei bekomme ich folgende Fehlermeldungen:

    1.) Der OLE DB-Anbieter "Microsoft.ACE.OLEDB.12.0" für den Verbindungsserver "(null)" hat die Meldung "Das Microsoft Office Access-Datenbankmodul kann die Datei '' nicht öffnen und nicht in die Datei schreiben. Sie ist bereits von einem anderen Benutzer exklusiv geöffnet, oder Sie benötigen eine Berechtigung, um die Daten anzeigen und schreiben zu können." zurückgeben.

    2.) Meldung 7303, Ebene 16, Status 1, Zeile 1
    Das Datenquellenobjekt des OLE DB-Anbieters "Microsoft.ACE.OLEDB.12.0" für den Verbindungsserver "(null)" kann nicht initialisiert werden.

    Kann mir jemand von euch weiterhelfen? Mir gehen langsam die Ideen aus...

    Besten dank! Ciao

  • #2
    Wer suchet, der findet ... sogar hier in diesem Forum

    http://entwickler-forum.de/showthrea...ght=openrowset
    http://entwickler-forum.de/showthrea...ght=openrowset
    http://entwickler-forum.de/showthrea...ght=openrowset
    http://entwickler-forum.de/showthrea...ght=openrowset

    Einen OLEDEB Treiber namens ACE gibt es nicht, nur einen namens JET für die JET-Engine
    =>
    'Microsoft.Jet.OLEDB.4.0'

    Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Danke für die Antwort. Aber mit diesem Treiber bekomme ich die gleiche Meldung wie oben beschrieben :-(

      René

      Comment


      • #4
        Dann probieres es mal mit einem der Beispiele von oben (OLEDB Provider für ODBC):

        SELECT *
        FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Excel-Treiber (*.xls);DBQ=C:\test.xls', 'SELECT * FROM [Tabelle1$]')

        Klappt bei mir problemlos.

        Nur daran denken: Der Laufwerksbuchstabe ist aus Sicht des SQL Servers und der muss auch Zugriffsrechte darauf haben.

        Olaf
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Hab folgenden regedit Schlüssel gesetzt:
          HKLM\SOFTWARE\Microsoft\Microsoft Sql Server\
          Interner Instanz-Name\Providers\Microsoft.Jet.OLEDB.4.0

          DisallowAdHocAccess = 0

          Dann geht es auch mit meinem ersten Statement :-)

          Dank!

          Comment


          • #6
            Ja, beim SQL 2005 muss das explizit aktiviert werden, deshalb gibt es unter

            Oberflächenkonfiguration => ... Features => Ad-hoc-Remoteabfragen

            das Häkchen für "Unterstützung von OPENROWSET und OPENDATASOURCE aktivieren"; eben jener Registry-Key
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X