oleDbConnection.ConnectionString := String.Concat('Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source="', path, '";Mode=Share Deny None;Jet OLEDB:Engine Type=5;Provider="Microsoft.Jet.OLEDB.4.0";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1');
try
oleDbConnection.Open
except
on exception: Exception do
raise Error.Create(ClassName, FuncName, 'Не могу открыть базу', exception)
end
открытие БД MS Access в WinXP x64 через oleDbConnection
Код:
Под 32-битной виндой работает на ура, а вот в 64-битной версии - 'Не могу открыть базу'.
Проблема видимо в Jet: не то, чтобы его совсем не было, но оно устанавливается в 32-битной подсистеме, (в реестре соответствующие ключи находятся в HKLM\SOFTWARE\Wow6432Node\Microsoft\Jet, а не в HKLM\SOFTWARE\Microsoft\Jet) и 64-битный .NET Framework его похоже не видит.
Есть ли способ решения данной проблемы?
PS На сайте Microsoft есть обновления Microsoft Jet только для 32-битных систем. Получается под .NET x64 с БД вообще нельзя работать:confused: