Microsoft.ACE.OLEDB.12.0 sağlayıcısı kayıtlı değil

İki projeli bir Visual Studio 2008 çözümüm var (bir Word-Template projesi ve test için bir VB.Net konsolu uygulaması). Her iki proje de bir MS-Access 2007 veritabanı dosyasına bağlantı açan ve System.Data.OleDb'ye bağlantıları olan bir veritabanı projesine atıfta bulunmaktadır. Veri tabanı projesinde veri tablosunu aşağıdaki gibi alan bir fonksiyon var.

  private class AdminDatabase ' stores the connection string which is set in the New() method dim strAdminConnection as string public sub New() ... adminName = dlgopen.FileName conAdminDB = New OleDbConnection conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _ "Provider=Microsoft.ACE.OLEDB.12.0" ' store the connection string in strAdminConnection strAdminConnection = conAdminDB.ConnectionString.ToString() My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection) ... End Sub ' retrieves data from the database Public Function getDataTable(ByVal sqlStatement As String) As DataTable Dim ds As New DataSet Dim dt As New DataTable Dim da As New OleDbDataAdapter Dim localCon As New OleDbConnection localCon.ConnectionString = strAdminConnection Using localCon Dim command As OleDbCommand = localCon.CreateCommand() command.CommandText = sqlStatement localCon.Open() da.SelectCommand = command da.Fill(dt) getDataTable = dt End Using End Function End Class 

Bu işlevi Word 2007 Template projemden çağırdığımda her şey iyi çalışıyor; hata yok. Ancak bir konsol uygulamasından başlattığımda, aşağıdaki istisnayı atar.

ex = {"Microsoft.ACE.OLEDB.12.0" sağlayıcı yerel makineye kayıtlı değil. "}

Her iki projede de aynı bağlantı var ve konsol uygulaması aslında ilk yazdığımda (bir süre önce) çalıştı, ancak şimdi çalışmayı durdurdu. Bir şeyi özlemem gerekiyor ama ne olduğunu bilmiyorum. Herhangi bir fikrin var mı?

66
27 окт. Azim 27 Ekim'de belirlendi. 2008-10-27 00:05 '08, 0:05 2008-10-27 00:05
@ 9 cevap

Access 2007 veritabanını kullanan ve aynı hatayı veren Visual Studio 2008'den bir görsel temel programım var. 64 bit sistem kullanıyorsanız, gelişmiş derleme yapılandırmasını x86 olarak değiştirmenizi öneren birkaç konu buldum. Şimdiye kadar programımla ilgili herhangi bir sorun yaşamadım.

42
26 янв. 26 Ocak tarihinde David yanıtı 2009-01-26 06:45 '09, 06:45, 2009-01-26 06:45

Temel olarak, 64 bit bir makinede çalışıyorsanız, IIS 7 (varsayılan olarak), veritabanı motorunu çalıştıran 32 bit uygulamalar sunmaz. Yani, işte yaptığınız şey:

1) 2007 veritabanı motorunun kurulu olduğundan emin olun; http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891 adresinden indirebilirsiniz.

2) IIS7 Yöneticisini açın ve Uygulama Havuzları alanını açın. Sağ kenar çubuğunda, "Varsayılan uygulama havuzunu ayarla" seçeneğini göreceksiniz. Üzerine tıkladığınızda parametrelerin olduğu bir pencere belirecektir.

border=0

3) "32 bit uygulamaları etkinleştir" yazan ikinci alan, varsayılan olarak FALSE olarak ayarlanmış görünüyor. Sadece "true" olarak değiştirmek için "false" yazan yere tıklayın.

4) Uygulama havuzunu yeniden başlatın (bunu STOP yerine RECYCLE, ardından da işe yarayacak olan START düğmesine basarak yapabilirsiniz).

5), ve hata mesajınız kaybolacaktır.

52
15 апр. Cevap Matt tarafından 15 nisanda verildi . 2010-04-15 23:11 '10 11:11 2010-04-15 23:11

32 bit sürümlü bir veritabanı olan 64 bitlik bir sistemi, 64 bitlik bir konsolu mu kullanıyorsunuz? 64 bit çalıştıran ve bildirdiğinizle aynı hatayı bildiren hiçbir MS Access sürücüsü yok.

7
27 окт. Cevap Joel Lucsy tarafından 27 Ekim tarihinde verildi 2008-10-27 01:19 '08, 1:19 2008-10-27 01:19

çözüm:

Bu nedir! Bağlantı için Arjun Paudel'e teşekkürler. Burada çözüm XNA Creator Club Online'da bulunur. Bu Stephen Stirchak.

Aşağıdaki hata 64-bit için derlediğinizi söylüyor:

Microsoft.ACE.OELDB.12.0 sağlayıcısı yerel bilgisayarda kayıtlı değil

Ekspres versiyonum yok, fakat 2008'de yapılması gerekenler var mı?

http://forums.xna.com/forums/t/4377.aspx#22601

http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/ed374d4f-5677-41cb-bfe0-198e68810805/?prof=required
- Arjun Paudel


VC# Express bu özelliğe sahip değildir, ancak nereye bakılacağını biliyorsanız, bir x86 yapılandırması oluşturabilirsiniz.

Uzun bir adım listesi gibi gözüküyor, ama bir zamanlar bu şeylerin nerede daha kolay olduğunu biliyorsunuz. VC# Express olan herkes muhtemelen bunu faydalı bulacaktır. Configuration Manager hakkında bir şey öğrenir öğrenmez bir dahaki sefere daha sezgisel olacak.

1. VC # Express 2005'te Tools -> Options .
2. "Seçenekler" iletişim kutusunun sol alt köşesinde "Show all settings" onay kutusunu seçin.
3. Soldaki ağaçta "Projects and Solutions" seçeneğini seçin.
4. Sağdaki seçeneklerde, "Show advanced build configuraions." kutusunu işaretleyin "Show advanced build configuraions."
5. Tamam'ı tıklayın.
6. Build -> Configuration Manager ...
7. Projenizin yanındaki Platform sütununda açılan kutuyu tıklayın ve "<New...>" seçeneğini seçin.
8. "New platform" setting, choose "x86" .
9. Tamam'ı tıklayın.
10. Close tıklayın.
Şimdi x86 konfigürasyonuna sahipsiniz! Basitçe basit!: -)

Ayrıca herhangi bir CPU platformunu kaldırmak için Configuration Manager kullanmanızı öneririm. 32 bit yerel DLL'lerde (dolaylı bağımlılıklar bile) bağımlılığınız varsa bunu gerçekten istemezsiniz.

Stephen Styrchak | XNA Game Studio Geliştirici http://forums.xna.com/forums/p/4377/22601.aspx#22601


5
12 дек. Cevap Pescadore tarafından 12 Aralık'ta verildi. 2009-12-12 19:55 '09, 19:55 2009-12-12 19:55

Arayacağımı düşündüm çünkü bu soruyu buldum, problemin biraz farklı bir bağlamı ile karşılaştım ve bunun gelecekteki diğer acı veren ruhlara yardımcı olabileceğini düşündüm:

Windows Server 2008'in 64 bit sürümünde çalışan IIS 7.0'da barındırılan bir ASP.NET uygulaması vardı.

IIS işlem bitini kontrol ettiğinden, benim durumumdaki çözüm Enable32bitAppOnWin64 parametresini true olarak ayarlamaktı: http://blogs.msdn.com/vijaysk/archive/2009/03/06/iis-7-tip-2- you-şimdi-çalıştırabilirsiniz-32-bit ve 64-bit uygulamalar-on -SAMe-server.aspx

IIS 6.0'da, biraz farklı çalışır (Enable32bitAppOnWin64'ü uygulama havuzu düzeyinde yükleyemezsiniz) mfr = doğru

3
29 янв. Cevap, Veli Gebrev tarafından 29 Ocak'ta verildi. 2010-01-29 15:36 '10, 15:36 2010-01-29 15:36

Yazımı benzer bir yığın akışında görün medican.pw.site/questions/27530 / ...

Bu PowerShell kodunu çalıştırarak keşfettiğim 12 değil, 15 sürümüm vardı ...

 (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 

... bu da bana bu sonucu verdi (diğer veri kaynaklarını kısaca kısalttım) ...

 SOURCES_NAME SOURCES_DESCRIPTION ------------ ------------------- Microsoft.ACE.OLEDB.15.0 Microsoft Office 15.0 Access Database Engine OLE DB Provider 
2
30 янв. Cevap 30 Ocak'ta TechSpud tarafından verildi 2014-01-30 14:52 14, 14: 52'de 2014-01-30 14:52

Bende de aynı problem var. Office 2010 64bit'i Windows 7 64-bit'e yüklemeye çalışıyorum ve 2007 Office Sistem Sürücüsü: Veri Bağlantısı Bileşenlerini kurmaya çalışıyorum.

Bundan sonra, Visual Studio 2008, MS-Access 2007 veritabanı dosyasına bir bağlantı açabilir.

2
14 мая '10 в 5:42 2010-05-14 05:42 Cevap 14 Mayıs 14, '10'da 5:42 2010-05-14 05:42 tarihinde verilmiştir.

Yalnızca 32 bit sürümde derlediğim bir .NET uygulamasıyla birlikte Windows Vista Family 64bit sürümünün tamamen güncellenmiş bir sürümünde de aynı hatayı yaşıyorum - program 64 bit makinelerde programx86 klasörüne yüklendi. Bu hata iletisiyle çalışmıyor, 2007 Access Veritabanı Sağlayıcı yüklü, SP2 yüklü / SP2 yüklü olmadan, yüklü IIS ve 32-bit uygulamaları desteklemek için yüklü havuz yüklü ... evet, her yerde her çözümü denedim ve hala başarılı değil.

Uygulamamı ACE OLE DB.12.0 olarak değiştirdim çünkü 64 bit makinelerde JET4.0 başarısız oldu - ve bu daha iyi değil: - / Bulduğum en umut verici akış şuydu:

http://ellisweb.net/2010/01/connecting-to-excel-and-access-files-using-net-on-a-64-bit-server/

ancak Office 2010 için 64 bit Office Sistem Sürücüleri'ni yüklemeye çalıştığınızda, tüm 32 bit ofis uygulamalarını kaldırmadan ve güvenlik duvarı sisteminin 32 bit sürümünü yüklemeden 64 bit sürümünü yükleyemeyeceğinizi söyler Office 2010: Veri bağlantısı bileşenleri, bu sayfanın (ve diğerlerinin) önerdiği "Microsoft.ACE.OLEDB.14.0" yerine bir sağlayıcı olarak "Microsoft.ACE.OLEDB.12.0" ile bile ilk sorunu çözmez.

Bir sonraki denemem şu şekilde olacak:

Sorun, sunucuda kayıtlı OLEDB32.DLL ve OLEDB32r.DLL'ın yanlış kullanımı ile ilgilidir. 64 bit sürümler kaydedilmişse, kayıtsız olmaları gerekir ve bunun yerine 32 bit sürümler kaydedilir. Bunu düzeltmek için,% Program Files% / Ortak Dosyalar / Sistem / OLE DB klasöründe bulunan sürümlerin kaydını kaldırın. Sonra sürümleri aynı yolda, ancak% Program Files (x86)% dizinine kaydedin.

Bir başkası 64-bit makinelerde JET4.0 ve OLEDB ACE tedarikçileriyle sorun mu yaşıyor? Hiçbiri işe yaramazsa, kimse bir çözüm bulamadı mı?

1
26 апр. Tarafından verilen cevap jazzwhistle 26 Nis 2010-04-26 13:18 '10, 13:18 2010-04-26 13:18

32 bit veritabanıyla 64 bit bir sistem kullanıyorsanız ve 64 bitlik bir konsolu başlatmaya çalışıyorsanız, makineye aşağıdaki paketlerin yüklenmesi gerektiğini varsayalım.

Not. Sipariş önemli görünüyor - bu yüzden zaten bir şey yüklediyseniz silin ve yukarıdaki adımları izleyin.

1
10 февр. Cevap 10 Şubat'ta Merav Kochavi tarafından verildi. 2016-02-10 18:23 '16, 18:23 2016-02-10 18:23

etiketleri ile ilgili diğer sorular veya bir soru sorun