Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Penyedia OLE DB Microsoft.ACE.OLEDB.12.0 untuk server tertaut (null) pesan yang dikembalikan Bookmark tidak valid.

Setelah banyak berjuang dengan masalah ini, saya menemukan solusi berikut:

  1. Pada server dan kotak 64-bit, Anda harus terlebih dahulu UNINSTALL semua aplikasi dan instans Microsoft Office 32-bit (instal Access 2007, Office 10 32-bit, dll.). Jika tidak, Anda tidak dapat menginstal komponen Microsoft Access Database Engine 2010 Redistributable 64-bit yang baru. Ya, ini memusingkan, tetapi satu-satunya cara yang saya temukan adalah menginstal pengganti baru untuk komponen mesin JET yang perlu dijalankan pada mesin 64-bit.
  2. Unduh dan instal komponen baru dari Microsoft:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en
    • Ini akan menginstal akses dan mesin lain yang Anda perlukan untuk menyiapkan server tertaut, file excel OPENROWSET, dll.
  3. Buka SQL Server dan jalankan perintah berikut:

    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
    
    • Ini menetapkan parameter yang diperlukan untuk mengakses dan menjalankan kueri yang terkait dengan komponen. Alamat ‘null
  4. Sekarang, jika Anda menjalankan panggilan OPENROWSET, Anda harus mengabaikan panggilan, dibuat menggunakan parameter JET lama dan menggunakan panggilan baru sebagai berikut:

    (*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. Sekarang untuk bagian yang menyenangkan…..temukan semua Disk Office Anda dan instal ulang Office dan/atau aplikasi yang diperlukan kembali ke mesin. Anda dapat menginstal Office 10 versi 64-bit dengan masuk ke disk dan masuk ke folder 64-bit dan menjalankannya, tetapi berhati-hatilah karena dalam beberapa kasus beberapa aplikasi pihak ketiga belum berinteraksi dengan versi Office tersebut.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk menerapkan Asosiasi Polimorfik di SQL Server?

  2. Bagaimana saya bisa mengelompokkan berdasarkan kolom tanggal waktu tanpa mempertimbangkan waktu?

  3. Rekursi CTE untuk mendapatkan hierarki pohon

  4. Pencadangan/pemulihan SQL Server vs. detach/attach

  5. Bagaimana sp_describe_first_result_set Bekerja di SQL Server