Connect to Microsoft SQL 2000 with the Perl Sybase Module

Andrew shows how to build the DBD::Sybase module with the TDS libraries.
______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Freetds latest version + dbd::sybase + aix 5.3

Dinesh's picture

Hi,

I am not able to install freetds latest statble version 0.82 on my aix 5.3 box. I want to use the dbd::sybase perl module but freetds is not able to install after I did the following:

./configure --with-tdsver=7.0 --disable-libiconv --disable-odbc --prefix=/usr/local/freetds/

make

It throws lots of error

fisql.c:31:31: error: readline/readline.h: No such file or directory
fisql.c:32:30: error: readline/history.h: No such file or directory
fisql.c: In function 'main':
fisql.c:400: error: 'rl_outstream' undeclared (first use in this function)
fisql.c:400: error: (Each undeclared identifier is reported only once
fisql.c:400: error: for each function it appears in.)
fisql.c:402: error: 'rl_readline_name' undeclared (first use in this function)
fisql.c:403: warning: implicit declaration of function 'rl_bind_key'
fisql.c:403: error: 'rl_insert' undeclared (first use in this function)
fisql.c:504: warning: implicit declaration of function 'rl_on_new_line'
fisql.c:505: warning: implicit declaration of function 'rl_reset_line_state'
fisql.c:517: warning: implicit declaration of function 'readline'
fisql.c:517: warning: assignment makes pointer from integer without a cast
fisql.c:523: warning: implicit declaration of function 'add_history'
fisql.c:540: error: 'rl_instream' undeclared (first use in this function)
fisql.c:544: warning: assignment makes pointer from integer without a cast
fisql.c:618: warning: assignment makes pointer from integer without a cast

Any help is appreciable

Regards,
Dinesh

Great job!

Larry E. Ives's picture

I came in today with the task in mind to begin to write some scripts to query some data in our MSSQL database which would then create html based reporting on our intranet. I planned on taking at least a day to make the initial connection and query but did it in 30 minutes. Thank you very much for your concise and straight forward howto article.

Incredibly helpful!

Anonymous's picture

Thank you SO much for your guidance on this! 1 hour of research to find the artical and I'm up and running!

Works but throws an ERROR

ThomasFiema's picture

any one get this at the start of the script runing:

cs_config(CS_LOC_PROP) failed at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 249.
DBD::Sybase::db STORE failed: Server message number=3902 severity=16 state=1 line=2 server=THOC105A text=The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION. at /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/DBI.pm line 555.

This is due to AutoCommit

Anonymous's picture

This is due to AutoCommit being on and no Begin transaction having occurred.

Add the AutoCommit => 0 to the connect statement as shown below.

my $dbh = DBI->connect($dsn, "username", 'password', {AutoCommit => 0});

BTW...

Anonymous's picture

BTW, this gets the data no problem, but throws this Error. Any input would be appreciated.

Thanks

TF

Great tip, but might be worth

Anonymous's picture

Great tip, but might be worth pointing out that this only applies to *nix. If your Perl script will be running on a Windows box you can just use the DBD::ADO driver instead.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

Cool workaround!
However, can this client solution interoperate with SQL server
password encryption funtions? I do not like sending
passwords over the wire in clear text.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

Hey, Baby. I think you're cute. Are you straight and single?

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

Cool workaround!
However, can this client solution interoperate with SQL server
password encryption funtions? I do not like sending
passwords over the wire in clear text.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

I'm running Red Hat Linux 8.0 with perl, v5.8.0 built for i386-linux-thread-multi.
I installed FreeTDS v 0.60, DBI-1.32 and DBD:Sybase-0.95.
When I try to run the sample script, I get

perl: relocation error: /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/DBD/Sybase/Sybase.so: undefined symbol: cs_ctx_global

Has anyone gotten this to work with the latest version of the software?
Thanks in advance for the replies.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

I'm running on RH 8.0, but I always install my own perl and such (I don't use the RH crap - too old) DBD-Sybase-1.02, freetds-0.62.1. Everything works fine...

Maybe you need a newer perl, freetds, or dbd-sybase - you are not at the current versions.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

Hi,

I got the same error and found an explanation here :

http://www.rosat.mpe-garching.mpg.de/mailing-lists/dbi/2002-11/msg00065....

I'll try the nightly snapshot approach. Although It'd be great to get a working non-ALPHA version.

Pieter..

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

rawcane's picture

This is brilliant. I wish I'd found this page before I tried to install everything...

One question: My set up is exactly as above but I get the message...

Failed to prepare SQL - Server message number=10000 severity=7 state=0 line=1 server=OpenClient text=Dynamic placeholders only supported under TDS 5.0 at CSV.pl line 49.

...when I try to prepare an insert statement with ?-style placeholders. I could put the variables into the sql string directly but that goes against the DBI guide instructions.

Is there a way of getting this to work without breaking the rules?

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

We spent $500 with a third party solution using ODBC and iodbc. What a pain in the arse too! This solution installed and returned a successful query in 10 minutes. Thank you for a most excellent article!

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

Worked for me too, yipeee. I think I had 8 hours into trying to get this to work before this article. Actually, I spent most of my time trying to debug the make test of DBD::Sybase. It does return a lot of errors so don't even bother running it.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

Tried it today on a RH7.2 system, Perl 5.6.1, to a SQL Server 2000 system on

the same LAN - it worked as described. Thanks to all the writers of freetds for

that very fine effort!

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

If you'r on FreeBSD, it's even easier..

cd /usr/ports/databases/freetds && make install clean

cd ../p5-DBD-Sybase

vi /usr/local/etc/freetds.conf

..and your ready to go.

Re: Connect to Microsoft SQL 2000 with the Perl Sybase Module

Anonymous's picture

oopsie..

cd /usr/ports/databases/freetds && make install clean

cd ../p5-DBD-Sybase && make install clean

vi /usr/local/etc/freetds.conf

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix