NOTE [26 OCT 2010]: The following article will teach you how to extract a Sage ODBC driver from a PC with Sage installed, and then install the extracted driver onto another PC without using the installation CD.
For Windows 7 users: I have been receiving many hits on this article from people searching for “Windows 7 installation” of the ODBC driver. The following method will work – though if you happen to have the installation CD and using Windows 7, I would rather recommend you to install it by using the setup CD – but YOU MUST RUN THE INSTALLATION as ADMINISTRATOR by right clicking on the setup.exe and choose “Run as Administrator”. You will also need to have either admin privilage or have the administrator’s password to be successful.
Feel free to leave me a question and I will help you out if you have any problem. Now let the journey begins….
Recently some so called “computer consultant” was working in the office, try to migrate to Windows 7 by installing it on a bunch of PCs without testing. He does not know / care / forgot / cannot find the ODBC driver which was in the older but working XP system.
The driver – a Sage Line 50 ODBC driver v16, was needed because we use a number of in-house MS Access databases which connect to our Sage accounting system on the file server.
The account data files had been upgraded to version 16. But the original CD only has the version 15 driver.
As a consequence, the newly installed Win7 or XP systems don’t have the right ODBC driver, they get the usual “ODBC error” and cannot use MS Access to connect to Sage account files.
To cut a long story short :- without the driver in hand, I need to devise a hack to extract the driver from the working system, and to manually install the ODBC driver back on the new XP and Windows 7 systems.
A few people on the internet were looking for information on how to install ODBC drivers manually (for either Sage or other third party drivers). I found a good guide from this site which teaches us to install other ODBC drivers. It is a generic solution from a research point of view, and it got me started to use it to work on Sage’s driver. So full credits due to the original article writer.
Let’s get to the specifics: for Sage Line50, I am going to outline the manual driver installation steps here. I hope it will help someone out there. There are 3 steps to do:
- Extract the driver file
- Understanding the ODBC in relation to the registry
- Copy the driver file and Tweak the registry
1) Extract the driver file
Sage Line 50 ODBC driver file is located in the directory %drive%\windows\system32 There is only one file to copy. As far as I know, from v12 and upwards, the driver file is named SXXDBC32.DLL where XX is the version number.
(e.g. in my situation, v16 is S16DBC32.dll and the file was located at C:\WINDOWS\system32\S16DBC32.dll
Once you have located it on another PC which has it – make a copy and keep it safe somewhere (say on a USB stick). We will need to put this into the new PC’s system32 directory later.
2) Understanding the ODBC in relation to the registry
OK – don’t get scared about the registry. It is quite easy so please sit down with a cup of coffee and read on …
Sage Line 50 ODBC driver puts 4 entries into the registry. When you open the ODBC administration panel, these entries tell Windows XP, Vista or Win 7 what the driver name is and where it is located. I highlighted the entries as follows:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "SageLine50v16"="Sage Line 50 v16" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\SageLine50v16] "Driver"="C:\\WINDOWS\\system32\\S16DBC32.dll" "DataPathname"="c:\\sage\\sfw\\accdata" "UseDataPath"="No" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] "Sage Line 50 v16"="Installed" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Sage Line 50 v16] "UsageCount"=dword:00000001 "Driver"="C:\\WINDOWS\\system32\\S16DBC32.dll" "Setup"="C:\\WINDOWS\\system32\\S16DBC32.dll" "CPTimeout"="<not pooled>"
You can download and save this file to your system, and you can use notepad to edit it. Or you can copy and paste it the above into your own editor.
You can see that I am using v16 driver. So if you are using other versions, you will need to replace the word “v16” with your version number, and also rename the driver name S16DBC32.dll with your version number. (coloured in red below)
Once you are done, save the file with the extension .reg (I called mine SageOdbc.reg) and keep it on your USB drive together with the driver file that you extracted earlier in Step 1.
3) Copy the driver file and Tweak the registry
Well you have actually done the hardest part. So now take your USB to the new computer that needs the driver.
- Copy the SXXDBC32.DLL file to the %drive%\windows\system32 directory (incidentally the filepath was actually mentioned to in the registry entries)
- Merge the registry by double click on the .reg file that you created in step 2.
Note: Vista and Win 7 users may get a warning and may require administrative access in order to change the registry. If you get “Error accessing the registry” when you double click on the .reg file, you should then use this method here to run REGEDIT as administrator (admin username and password is required), and import the registry setting within REGEDIT. Also bear in mind that certain anti-virus software might complaint that the registry is being changed, so you need to cope with those situations.
If all goes well, then your driver will be installed. You can check it by opening the “ODBC Data Source Administrator”; you should find your newly installed Sage ODBC driver under the “System DSN” tab.
You should also find under the “Drivers” tab of the same driver, with the version number and driver file name listed.
You might also like to check the Datapath setting which is pointing to the location of the accounts data files.
So no more lost ODBC driver for Sage for me, and I can now install different version of the ODBC drivers on different PCs as I see fit.
Please leave a message if this article helps you or if you have any questions to ask. Thanks and good luck!