Re: Coding issues using FreeTDS/DBD::Sybase in Perl

Brian Menges <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <D83C13F0C853364EB226DBEE584BBE614DACF255FB@SERVEPATHMBX.servepath.com>
No the DBD::Sybase library wasn't source compiled, at least by downloading it specifically then compiling it.  I assume (since I'm inheriting the environment) that it was installed using CPAN, which would have auto-compiled it.  Is there a way to check how it was compiled, or would it be wise to remove the perl module then re-install it?

~B

---------------------------------------------------------
Brian S. Menges
Support Supervisor / Abuse Administrator
2 Harrison, Suite 200|San Francisco, CA|94105
D 415.869.7000|F 415.869.7001

Making IT Infrastructure: Simpler. Faster. Better.
 Please consider the environment before printing this email.


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Gil Rohde
Sent: Friday, June 25, 2010 1:48 PM
To: FreeTDS Development Group
Subject: Re: [freetds] Coding issues using FreeTDS/DBD::Sybase in Perl

Did you compile DBD::Sybase with the freetds libraries?  Make sure you set $SYBASE to the freetds install location and wouldn't hurt to set LD_LIBRARY_PATH as well to the freetds lib directory and then build DBD::Sybase. 

Gil
(Sent from my iPhone)

On Jun 25, 2010, at 2:17 PM, Brian Menges <[email protected]> wrote:

> I'm starting to get a little flustered and according to what I've read in documentation (brief) and examples from web searching, I'm stuck and it is driving me nuts <breath>.
> 
> So let me start with the basics:
> 
> DBD::Sybase version 1.10 loaded from /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBD/Sybase.pm
> 
> 
> [10:03:17]$ tsql -C
> Compile-time settings (established with the "configure" script)
>                            Version: freetds v0.82
>             freetds.conf directory: /usr/local/etc
>     MS db-lib source compatibility: no
>        Sybase binary compatibility: no
>                      Thread safety: yes
>                      iconv library: yes
>                        TDS version: 5.0
>                              iODBC: no
>                           unixodbc: no
> 
> [10:59:43]$ ls -la /usr/local/etc/freetds.conf 
> lrwxrwxrwx  1 root root 25 Feb 15  2006 /usr/local/etc/freetds.conf -> /etc/freetds/freetds.conf
> 
> [11:02:08]$ cat /etc/freetds/freetds.conf
> [global]
>        tds version = 4.2
>        initial block size = 512
>        swap broken dates = no
>        swap broken money = no
>        try server login = yes
>        try domain login = no
>        cross domain login = no
>        text size = 64512
> 
> [griddbstage]
>    host = griddbstage
>    port = 1433
>    tds version = 7.0
> 
> --
> 
> Now, with the above configuration I can connect using the command line to my database:
> 
> [11:02:30]$ tsql -S griddbstage -U brian -D gogrid
> locale is "en_US.UTF-8"
> locale charset is "UTF-8"
> Password: 
> Default database being set to gogrid
> 1> exit
> 
> But attempts to use perl have resulted in a message that plagued me earlier at the command line:
> 
> use DBI;
> ...
> DBI->trace(4);
> my $c_ggdb = DBI->connect("DBI:Sybase:$dbserv",$dbuser,$dbpass)
> or die "Cannot log into $dbserv\n";
> ...
> 
> With the trace as follows:
> 
> ---
>    DBI 1.609-ithread default trace level set to 0x0/4 (pid 26790) at ggsmtp.pl line 106
>    -> DBI->connect(DBI:Sybase:griddbstage, brian, ****)
>    -> DBI->install_driver(Sybase) for linux perl=5.008005 pid=26790 ruid=2632 euid=2632
>       install_driver: DBD::Sybase version 1.10 loaded from /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBD/Sybase.pm
>    <- install_driver= DBI::dr=HASH(0x977dc84)
>    !! warn: 0 CLEARED by call to connect method
>    -> connect for DBD::Sybase::dr (DBI::dr=HASH(0x977dc84)~0x977de70 'griddbstage' 'brian' **** HASH(0x96af038)) thr#9362008
>    syb_db_login() -> using global CS_LOCALE data
>    clientmsg_cb -> Unable to connect: Adaptive Server is unavailable or does not exist
>    <> DESTROY(DBI::db=HASH(0x9783bf0)) ignored for outer handle (inner DBI::db=HASH(0x9783b90) has ref cnt 1)
>    -> DESTROY for DBD::Sybase::db (DBI::db=HASH(0x9783b90)~INNER) thr#9362008
>         DESTROY for DBI::db=HASH(0x9783b90) ignored - handle not initialised
>       ERROR: 41 'OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (41)
> Server griddbstage, database
> Message String: Unable to connect: Adaptive Server is unavailable or does not exist
> ' (err#0)
>    <- DESTROY= undef at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 653 via  at ./ggsmtp.pl line 107
>    dbih_clearcom 0x9783b90 (com 0x9784300, type 2) done.
> 
>    !! ERROR: 41 'OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (41)
> Server griddbstage, database
> Message String: Unable to connect: Adaptive Server is unavailable or does not exist
> ' (err#0)
>    <- connect= undef at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 653
>    -> $DBI::errstr (&) FETCH from lasth=HASH
>>> DBD::Sybase::dr::errstr
>    <- $DBI::errstr= 'OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (41)
> Server griddbstage, database
> Message String: Unable to connect: Adaptive Server is unavailable or does not exist
> '
>       DBI connect('griddbstage','brian',...) failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (41)
> Server griddbstage, database
> Message String: Unable to connect: Adaptive Server is unavailable or does not exist
> 
> DBI connect('griddbstage','brian',...) failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (41)
> Server griddbstage, database
> Message String: Unable to connect: Adaptive Server is unavailable or does not exist
> at ./ggsmtp.pl line 107
> Cannot log into griddbstage
>    -- DBI::END ($@: , $!: )
>    !! ERROR: 41 CLEARED by call to disconnect_all method
>    -> disconnect_all for DBD::Sybase::dr (DBI::dr=HASH(0x977dc84)~0x977de70) thr#9362008
>    <- disconnect_all= 1 at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 732 via  at ./ggsmtp.pl line 0
> !   <> DESTROY(DBI::dr=HASH(0x977dc84)) ignored for outer handle (inner DBI::dr=HASH(0x977de70) has ref cnt 1)
> !   -> DESTROY in DBD::_::common for DBD::Sybase::dr (DBI::dr=HASH(0x977de70)~INNER) thr#9362008
> !   <- DESTROY= undef during global destruction
>    dbih_clearcom 0x977de70 (com 0x97813a8, type 1) done.
> ---
> 
> I'm not sure if this is the right place to be asking this, because I can force my perl program down to system cmd line and read from there... but I shouldn't have to kluge this.  Should I be addressing this with DBD::Sybase or here?  I'm horribly confused, and wondering if I'm just missing something stupidly obvious.
> 
> Appreciate the help.
> 
> ---------------------------------------------------------
> Brian S. Menges
> Support Supervisor / Abuse Administrator
> 2 Harrison, Suite 200|San Francisco, CA|94105
> D 415.869.7000|F 415.869.7001
> 
> Making IT Infrastructure: Simpler. Faster. Better.
>  Please consider the environment before printing this email.
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
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.