“UDL Test” on a 64 bit machine

Let’s say you’ve started playing with UDL files on your "32 bit" machine and this tiny little UDL files helped you to identify connectivity issues or you’ve easily obtained the OLE DB connection strings for your applications. So far so good. But one day, you followed the same procedure on a 64 bit machine and couldn’t see the OLE DB Providers though you’re sure that it’s been installed. There must be something wrong then ?

The reason behind for this is simple. When you double clicked on a UDL file on a 64 bit machine, it’ll enumerate only the 64 bit OLE DB Providers and most probably you’ve installed a 32 bit OLE DB Provider.

So then, there should be a way of making UDL Test using the 32 bit OLE DB Providers on a 64 bit machine.

Actually when you’ve created a UDL file on a 64 bit machine and double clicked on it,

"C:\Program Files\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile  C:\test.udl

command will be called through C:\windows\system32\rundll32.exe

Both binaries (oledb32.dll and rundll32.exe) used here are 64 bit and 64 bit oledb32.dll does not deal with 32 bit OLE DB Providers.

Since we already have 32 bit versions of those oledb32.dll and rundll32.exe in other folders on our 64 bit machines, we need to use them. Therefore, instead of double clicking on the UDL file, we’ll need to  execute the command below from a command line or Start/Run :

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl

Et voila :) There you have your 32 bit OLE DB Providers.