Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dostawca OLE DB Microsoft.ACE.OLEDB.12.0 dla serwera połączonego (null) zwrócił komunikat Zakładka jest nieprawidłowa.

Po wielu zmaganiach z tym problemem znalazłem następujące rozwiązanie:

  1. Na serwerach i komputerach 64-bitowych należy najpierw ODINSTALOWAĆ wszystkie 32-bitowe aplikacje i instancje pakietu Microsoft Office (instalacja programu Access 2007, 32-bitowy pakiet Office 10 itd.). Jeśli tego nie zrobisz, nie możesz zainstalować nowych 64-bitowych składników redystrybucyjnych aparatu bazy danych programu Microsoft Access 2010. Tak, to ból głowy, ale jedyny sposób, jaki znalazłem, aby zainstalować nowe zamienniki komponentów silnika JET, które muszą działać na maszynach 64-bitowych.
  2. Pobierz i zainstaluj nowy składnik firmy Microsoft:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en
    • Spowoduje to zainstalowanie dostępu i innych silników potrzebnych do skonfigurowania połączonych serwerów, plików programu Excel OPENROWSET itp.
  3. Otwórz SQL Server i uruchom następujące polecenie:

    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    GO
    
    • Ustawia to parametry potrzebne do uzyskania dostępu i uruchamiania zapytań związanych z komponentami. Adres ‘null
  4. Teraz, jeśli używasz wywołań OPENROWSET, musisz porzucić wywołania wykonane przy użyciu starych parametrów JET i użyć nowych wywołań w następujący sposób:

    (*Example, importing an EXCEL file directly into SQL):
    DONT DO THIS….
    SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=YES;Database=c:\PATH_TO_YOUR_EXCEL_FILE.xls','select * from [sheet1$]')
    
    USE THIS INSTEAD…
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=c:\PATH_TO_YOUR_EXCEL_FILE.xls','select * from [sheet1$]')
    
    *At this point resolved two SQL issues and ran perfectly
    
  5. Teraz dla zabawy… znajdź wszystkie swoje dyski z pakietem Office i ponownie zainstaluj pakiet Office i/lub potrzebne aplikacje z powrotem na komputerze. Możesz zainstalować 64-bitową wersję pakietu Office 10, przechodząc na dysk i przechodząc do folderu 64-bitowego i uruchamiając go, ale uważaj, ponieważ w niektórych przypadkach niektóre aplikacje innych firm nie współpracują jeszcze z tą wersją pakietu Office.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunek filtrowanego indeksu jest ignorowany przez optymalizator

  2. Jak wykonać CONTAINS() na dwóch kolumnach pełnotekstowego wyszukiwania indeksowego SQL?

  3. Programowo generuj skrypt dla wszystkich obiektów w bazie danych

  4. Dodaj domyślną wartość do istniejącej kolumny na podstawie If Then Else sql server 2008

  5. Niezwykle wolne uruchamianie EF — 15 minut