[freetds] sybperl and freetds
James K. Lowden
jklowden at schemamania.org
Thu Jan 27 21:24:44 EST 2005
Technoid <technoid at gmail.com> wrote:
> I just inherited another freetds project from my employer.
Congratulations! ;-)
> Applications running on FreeBSD and IRIX access an OpenClient version
> of DBD::Sybase through two intermediate layers of wrappers.
...
> The DB_* wrappers in turn call
> Sybase::DBlib functions, which make calls to DBD::Sybase.
Sybase::DBlib wraps db-lib, and DBD::Sybase wraps ct-lib. The two modules
are independent.
> I am charged with helping convert from using OpenClient to using
> FreeTDS.
>
> I have written test cases that demonstrate that everything works fine
> if I make calls from my test script to freshly built FreeTDS versions
> of DBD::Sybase.
Excellent!
> suspect that I need to rebuild sybperl to correctly call DBD::Sybase.
Right. You need to relink the perl modules to use the FreeTDS shared
objects:
$ ldd $(find $(perl -e'print join $/, @INC' | grep ^/) -name '*yb*.so' |
sort -u)
/usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd/auto/DBD/Sybase/Sybase.so:
[...]
-lct.1 => /usr/pkg/lib/libct.so.1
-ltds.2 => /usr/pkg/lib/libtds.so.2
or something like that....
> I've googled a bit to see if there are any specific instructions for
> building sybperl for use with FreeTDS, but thought I would also check
> to make sure I'm not making any false assumptions about using sybperl
> with FreeTDS.
Other than what's in the User Guide, what is it you need?
> (I'm wondering if--instead of trying to make sybperl
> work with FreeTDS--I should just tweak our home-grown wrappers to skip
> sybperl and interact with DBD::Sybase directly ...)
That sounds like a good idea. I wouldn't be surprised if the scripts
you're porting were originally written to db-lib or at least had
db-lib-isms in them. If you're more familiar with DBD::Sybase, you might
be better off scraping out the middle layer(s). It's hard to imagine what
functionality they're providing.
HTH.
--jkl
More information about the FreeTDS
mailing list