Moving Between Win32::ODBC and the DBI
Let’s say that you’ve already written an application that
uses Win32::ODBC, but you now need to run it on a
non-Windows machine, or just want to use the DBI for some other
reason.
The best technical approach would be to rewrite the application, but
the real world doesn’t often give us that kind of luxury. A
more practical solution would be to use some kind of emulation of
Win32::ODBC
that
uses the DBI “under the hood”. The
Win32::DBIODBC
module bundled with the DBI does just
that.
The Win32::DBIODBC module implements enough of the
Win32::ODBC API for many simple applications to be
ported with only a one-line change. Instead of saying:
use Win32::ODBC;
you just say:
use Win32::DBIODBC;
In the rest of your code, you still refer to the
Win32::ODBC module. There is also an easy way to
test your applications without having to change them at all. Just
load Win32::DBIODBC from the command line:
perl -MWin32::DBIODBC your_script_name
Win32::DBIODBC fools Perl into thinking that
Win32::ODBC has been loaded, so the use Win32::ODBC; line in your script won’t have any
effect.
Once you’re using the emulation, you have the option to start rewriting the application to use the DBI directly at your own pace.