in reply to $ENV question

Here's what I've found while using the Openlink ODBC driver and DBD::ODBC:

I put copies of .odbc.ini into the ~/ of the user that runs the script. (i.e. - there is a copy in nobody's ~/ if you're running from a web server where nobody is the User)

You must have a copy of udbc.ini in /etc or else it doesn't work. I need to complain to Netrista that the free version from iodbc.org doesn't contain a copy of that.

You must set $ENV{ODBCHOME} to the location of Openlink. This is not the lib directory but the parent Openlink directory.

If you don't define your DBI_DSN, DBI_USER, or DBI_PASS environment variables, you can provide that information on the connect string.

DBI->connect('dbi:ODBC:dsn', 'user', 'pass', {...});

If you're having problems with large strings coming from the database, turn on LongTruncOk in the DBI arguments (i.e. - {LongTruncOk => 1}).

Some general rules about the DBI. Use RaiseError during debug mode. It is great. Use a trace level of 3 if RaiseError is not helpful enough. Before DBI->connect: DBI->trace(3); Get a copy of the cheetah (Programming the Perl DBI).

Good luck, and have fun. :)

Update: Forgot to mention about your $ENV{DBI_DSN} = 'path'. That's not right.

$ENV{DBI_DSN} = 'dbi:ODBC:dsn'; $ENV{DBI_USER} = 'user'; $ENV{DBI_PASS} = 'pass'; $ENV{ODBCHOME} = '/usr/local/openlink';

That will get you further. :)

ALL HAIL BRAK!!!