This one is a real pain in the ass.
For some reason the installation of the Visual Fox Pro 8 SP1 OLEDB provider left all the registry keys installed were not readable by ordinary users, so when I tried to execute my application as an ordinary user didn’t work as the ‘provider wasn’t installed‘, whereas it’s just permissions.
Registry Keys that needed permission changes: HKCR\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000} HKCR\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000} HKCR\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000} HKCR\VFPOLEDB HKCR\VFPOLEDB.1 HKCR\Vfpoledb.ConnectionPage HKCR\Vfpoledb.ConnectionPage.1 HKCR\VFPOLEDB.ConnectionPage HKCR\VFPOLEDB.ConnectionPage.1
and the SOB still won’t work. Permissions on the files in OLDEB directory seem OK.
Then I had to copy registry information into the user’s environment:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes] [HKEY_CURRENT_USER\Software\Classes\CLSID] [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}] "OLEDB_SERVICES"=dword:ffffffff @="VFPOLEDB" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\ExtendedErrors] @="Extended Error Service" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\ExtendedErrors\{50BAEEDA-ED25-11D2-B97B-000000000000}] @="VFPOLEDB Error Lookup" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\Implemented Categories] [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\Implemented Categories\{D267E19A-0B97-11D2-BB1C-00C04FC9B532}] @="" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\InprocServer32] "ThreadingModel"="Both" @="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\OLE DB Provider] @="Microsoft OLE DB Provider for Visual FoxPro" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\ProgID] @="VFPOLEDB.1" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\TypeLib] @="{50BAEECA-ED25-11D2-B97B-000000000000}" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\VersionIndependentProgID] @="VFPOLEDB" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}] @="VFPOLEDB Error Lookup" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}\InprocServer32] "ThreadingModel"="both" @="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}\ProgID] @="VFPOLEDB.ErrorLookup.1" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}\VersionIndependentProgID] @="VFPOLEDB.ErrorLookup" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}] @="VfpOLEDBConnectionPage Class" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}\InprocServer32] "ThreadingModel"="Both" @="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll" [HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}\Programmable] @="" [HKEY_CURRENT_USER\Software\Classes\TypeLib] [HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}] [HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0] @="Microsoft OLE DB Provider for Visual FoxPro 7.0 Type Library" [HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0] [HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32] @="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll" [HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\FLAGS] @="0" [HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\HELPDIR] @="C:\\Program Files\\Common Files\\System\\ole db\\" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB] @="Microsoft OLE DB Provider for Visual FoxPro" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB\CLSID] @="{50BAEED9-ED25-11D2-B97B-000000000000}" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB\CurVer] @="VFPOLEDB.1" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.1] @="Microsoft OLE DB Provider for Visual FoxPro" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.1\CLSID] @="{50BAEED9-ED25-11D2-B97B-000000000000}" [HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage] @="VfpOLEDBConnectionPage Class" [HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage\CLSID] @="{50BAEEDB-ED25-11D2-B97B-000000000000}" [HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage\CurVer] @="vfpOLEDBDLink.ConnectionPage.1" [HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage.1] @="VfpOLEDBConnectionPage Class" [HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage.1\CLSID] @="{50BAEEDB-ED25-11D2-B97B-000000000000}" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup] @="VFPOLEDB Error Lookup" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup\CLSID] @="{50BAEEDA-ED25-11D2-B97B-000000000000}" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup.1] @="VFPOLEDB Error Lookup" [HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup.1\CLSID] @="{50BAEEDA-ED25-11D2-B97B-000000000000}"
Of course, if you’ve installed it somewhere else then you should not use the C: prefix, but whatever the installation drive is (e.g. j:).