我有一个使用Jet OLEDB 4.0的32位.net 2.0应用程序.
它在Windows 8 32位上运行fin,但不在64位上运行fin.在64位我得到一个错误:
'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册.在System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr,DataSourceWrapper&datasrcWrapper)
我知道你不能使用64位EXE的数据库(驱动程序).但是,我没有读到任何关于它不使用32位exe的内容.
我尝试了什么:
所以我认为(希望)如果我可以安装数据库支持它就会起作用.
问题是,我找不到任何下载它的地方.
fvu*_*fvu 24
在现代Windows上,此驱动程序不再可用,但您可以在MS站点上以Microsoft Access数据库引擎2010 Redistributable的形式下载.如果您的应用程序是32位,请确保下载并安装32位变体,因为据我所知,32位和64位变体不能共存.
根据您的应用程序如何找到其数据库驱动程序,这可能就是所需要的.但是,如果您使用UDL文件还有一个额外步骤 - 您需要编辑该文件.不幸的是,在64位机器上,用于编辑UDL文件的向导默认为64位,它不会看到JET驱动程序,只是打击它在UDL文件中首先找到的驱动程序.有两种方法可以解决此问题:
C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\path\to\your.udl
.请注意,我可以在Win7 64 Pro上使用此技术,但它在Server 2008R2上不起作用(可能是我的错,只是提到)[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\To\The\database.mdb;Persist Security Info=False
这应该允许您的应用程序正确启动.