http://qs321.pair.com?node_id=1100606

DanBev has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks, I've an issue connecting to MS SQL Server with DBI. I've read all tutorials and configurations of TDS but my code still not works...

Simply I try my $dbh = DBI->connect(DBI:Sybase:server=xx.xx.xx.xx, "USERNAME", "PASSWORD") ; and the error is

DBI connect('server=xx.xx.xx.xx','USERNAME',...) failed: OpenClient me +ssage: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (41) Server xx.xx.xx.xx, database Message String: Unable to connect: Adaptive Server is unavailable or d +oes not exist at check_ultima_chiamata.pl line 19 Cant' connect to database: OpenClient message: LAYER = (0) ORIGIN = (0 +) SEVERITY = (78) NUMBER = (41) Server xx.xx.xx.xx, database Message String: Unable to connect: Adaptive Server is unavailable or d +oes not exist

My TDS configuration is

[xx.xx.xx.xx] host = xx.xx.xx.xx port = 1433 tds versione = 7.0

Instead, trying in shell it works

root@___# /usr/local/freetds/bin/tsql -S xx.xx.xx.xxx -U USER Password: locale is "it_IT.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1>

Please help me to understand...

Replies are listed 'Best First'.
Re: issue with DBI and MS SQL SERVER
by blue_cowdawg (Monsignor) on Sep 15, 2014 at 14:26 UTC

    It's been a really long time since I used the Sybase DBD driver but I seem to remember that you need to create an entry in an interfaces file to map between a logical server name and the physical server name. Not sure what you mean by "TDS configuration."

    If I remember how the interfaces file is configured correctly it looks something like:

    [BILLING] host = 123.213.13.2 port = 1433 database = BILLING user = USER password = PASSWORD
    Then you use the handle BILLING to connect with. Also if memory serves me correctly you have supply the path to the Sybase libraries
    BEGIN{ $ENV{SYBASE}='/opt/sybase....handwaving here...'; } use DBI; my $dbh=DBI->connect('DBI:Sybase:server=BILLING') or die $DBI->errstr;
    Hope this helps..


    Peter L. Berghold -- Unix Professional
    Peter -at- Berghold -dot- Net; Blog: http://blog.berghold.net Warning: No political correctness allowed.
      blame on me! I'm configuring a freetds.conf file in /usr/local/freetds/etc/, but the script use the freetds.conf file in /usr/local/etc, due to a re-installation of libraries and various attempt to resolve my problem. Is not a beautiful presentation my first post here... :) Thank you for the reply!
Re: issue with DBI and MS SQL SERVER
by GotToBTru (Prior) on Sep 15, 2014 at 14:55 UTC
      Thank you for the reply. I've resolved my issue simply because I was working on wrong freetds.conf file
        Could you add another comment that explains the whole issue a bit more clearly, now that you completely understand it and have solved it? Writing for the next poor schleb who is banging their head against this ... and so that the rest of us know more about this slightly-arcane setup?
Re: issue with DBI and MS SQL SERVER
by GotToBTru (Prior) on Sep 15, 2014 at 14:48 UTC

    Deleted useless comment -- I'm not familiar with Sybase or SQL Server and it shows.

    1 Peter 4:10