sql >> Database teknologi >  >> RDS >> Sqlserver

OLE DB-udbyder Microsoft.ACE.OLEDB.12.0 for linket server (null) returnerede meddelelse Bogmærket er ugyldigt.

Efter mange kampe med dette problem fandt jeg følgende løsning:

  1. På 64-bit-servere og -bokse skal du først AFINSTALLERE alle 32-bit Microsoft Office-applikationer og -instanser (Access 2007-installation, Office 10 32-bit osv.). Hvis du ikke gør det, kan du ikke installere de nye 64-bit Microsoft Access Database Engine 2010 Redistributable komponenter. Ja, det er en hovedpine, men den eneste måde jeg fandt på at installere de nye erstatninger til JET-motorkomponenterne, der skal køre på 64-bit maskiner.
  2. Download og installer den nye komponent fra Microsoft:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en
    • Dette vil installere den adgang og andre motorer, du skal bruge for at konfigurere linkede servere, OPENROWSET excel-filer osv.
  3. Åbn SQL Server og kør følgende:

    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
    
    • Dette indstiller de nødvendige parametre for at få adgang til og køre forespørgsler relateret til komponenterne. Adresse 'null
  4. Hvis du nu kører OPENROWSET-opkald, skal du afbryde opkald, foretaget ved hjælp af de gamle JET-parametre og bruge de nye opkald som følger:

    (*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. Nu til den sjove del...find alle dine Office-diske og geninstaller Office og/eller nødvendige programmer tilbage på maskinen. Du kan installere 64-bit-versionen af ​​Office 10 ved at gå ind på disken og gå ind i 64-bit-mappen og køre den, men pas på, da nogle tredjepartsapps i nogle tilfælde endnu ikke har grænseflader med den version af Office.


  1. Lagring af bredde- og længdegradsværdier i en MySQL-database i iOS

  2. Hvorfor returnerer SQL workbench altid en række fuld af null-værdier i hver forespørgsel?

  3. MySQL datatype INT(11) mens USIGNED INT(10)?

  4. Php/ODBC-kodningsproblem