Re: issues connecting with perl DBD::ODBC

Michael Higgins <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Organization Evolone
Message-ID <[email protected]>
On Tue, 23 Jun 2009 17:59:16 -0400
"Kulik, Scott" <[email protected]> wrote:

> If I try to use a format similar to:
> 
> my
> $DSN="Driver=FreeTDS;Server=localhost;ServerName=TREX;Port=1799;Database
> =TREX;UID=_user;PWD=_pass";
> my $dbh = DBI->connect("dbi:ODBC:$DSN",'_user','_pass');
> 
> like mentioned in the last response I always get a segmentation fault.

Sorry, I missed that.

Anyway, you may want to try doing this same kind of connect, but with one of, however you want to set it:

export LD_BIND_NOW=1 

or 

export PERL_DL_NONLAZY=1

... which works with DBI if I just set %ENV in a BEGIN block. This didn't work with DBIx-Class (though LD_BIND_NOW did if set outside the script).

If that makes a difference to the segfault (it does for me), then I think maybe you can connect in any way. IOW, I think the problem, whatever it is, is what causes the segfault. It is just a different result of the same underlying problem, but things are in fact handled differently depending on what is in the connect string.

I think there's some SQL_ERROR library that isn't available at connect, but perhaps could be. When the library is preloaded, then you get normal error responses, which prompts the right behaviour, a second attempt at a SQL connect. This is mostly a guess, though, inferred from reading.

Finally, I just put /usr/lib/libtdsodbc.so in /etc/ld.so.preload ... which may, or may not be right, or right for your distro, but hopefully you see the point. I think there is something wrong in the library linking from unixODBC to FreeTDS when called with DBD::ODBC. I know squat about it... though I can say this above is what works for me.

Good luck!

-- 
 |\  /|        |   |          ~ ~  
 | \/ |        |---|          `|` ?
 |    |ichael  |   |iggins    \^ /
 michael.higgins[at]evolone[dot]org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.