Recently a client upgraded their ProForm Classic Standard installation from MDB to SQL. They have a terminal Server which wasn't included in the update as only IT people use it. ProForm was coming up saying it could not find a unknown file relating to the databases, the error was PFWIN-028. Looking at the information in odbcad32.exe 32 bit or 64 bit showed no visible issues.
Not all PFWIN-028 errors need this fix, many can be fixed through Odbcad32.exe 32 bit version. In this case there is a conflict in the ODBC entries in the Registry. Note: even though this article is talking about Terminal Server, Windows XP, Vista, 7 and 8 users can use the same methodology on ProForm SQL workstations to reset the ODBC connectors. Access MDB installations don't have a required utility and can uninstall the Client, remove the registry entries and reinstall the client to fix.
ProForm Classic uses ODBC connectors to talk to it's database, so searching the registry for ODBC.INI from start to finish and cleaning out ProForm specific entries is the goal. Then we'll use ProForm's tools to rebuild the entries. It is the registry so general cautionary tales apply, Back up the entry if you might want it back. Only delete keys that are specific to ProForm, like
- PfPx Database
- PfPx Network Lookups
- PTWin Database
- P1Win Database
- SoftPro Database
- PfPx Local Lookups
- P1Win Database
- PSWin Database
- PIWin Database
are all to be removed. Don't remove drivers or the entire ODBC.INI entries. You'll need your backup if you do that.
You will find these entries in 4 or 5 different ODBC.INI Keys, HKLM\SoftWare\Wow6432Node\ODBC\Odbc.Ini is a major one, there will be others. I also ran into a set of keys which were GUID's and had 2 values per GUID with both ODBC.ini and a ProForm database in it. I deleted the GUID Key, it will be the bottom most key when the (F3) Find stops.
After clearing the registry of potential conflicting information, Terminal Servers should go into Install Mode by opening an Administrator prompt and typing "change user /install"
Then if SoftPro is configured correctly, which it normally is, go to the Shared folder and run spswlreg.exe once as administrator, and once as not administrator. (Click Go in spsqlreg.exe) Terminal Servers should then set the machine to execute mode with "change user /execute" at the command prompt and fire up ProForm.
In TS, ProForm will start and grab it's initial settings from "Hklm-Software-Microsoft-Windows NT-CurrentVersion-TerminalServer-Install-Software-ODBC-ODBC.ini registry entry. This will create the required user registry entries when the user starts ProForm for the next time.
ProForm Classic has been transitioning from using the ODBC entries under HKCU to using the entries under HKLM, the "PfPx Local Lookups" entry is the final holdout that I've found. If an entry doesn't exist for that and the user is configured to use Network Lookups, ProForm Classic 12.2 will open without error.
When configured correctly the ODBC.INI entries used by ProForm Classic Standard are covered in the following pictures. Enterprise should look about the same.
Terminal Servers will have
Finally the HKLM stuff is