There are a few ways to use Perl™ to connect to a SQL Server™ using FreeTDS™.
You may also use DBD::Sybase
from Michael Peppler. Despite the name it works for any Sybase or Microsoft SQL Server™. DBD::Sybase
uses the CT-Library
API and works well. However the project has not been updated for a while.
Finally, you can use Sybperl
. Scripts written against Sybperl
will not run against other databases the way DBI scripts will. However, it will be familiar ground for those who know DB-Library
.
Example 7.2. Building DBD::ODBC
$
cd DBD-ODBC-0.28
$
export SYBASE=/usr/local/freetds
$
export ODBCHOME=/usr/local
$
export DBI_DSN=dbi:ODBC:JDBC
$
export DBI_USER=guest
$
export DBI_PASS=sybase
$
perl Makefile.PL
$
make
$
sudo make install
Note | |
---|---|
We used the public JDBC server logins for our configuration here. You'll want to replace these with ones suitable to your environment. |
Example 7.3. Connect to a server with DBD::ODBC
#!/usr/local/bin/perl # use DBI; my $dbh = DBI->connect("dbi:ODBC:JDBC", 'guest', 'sybase', {PrintError => 0}); die "Unable for connect to server $DBI::errstr" unless $dbh; my $rc; my $sth; $sth = $dbh->prepare("select \@\@servername"); if($sth->execute) { while(@dat = $sth->fetchrow) { print "@dat\n"; } }
Example 7.4. Building DBD::Sybase
$
cd DBD-Sybase-0.91
$
export SYBASE=/usr/local/freetds
$
perl Makefile.PL
$
make
$
sudo make install
There will be some output about missing libraries after perl Makefile.PL
. These are normal.
The following example will attach to Sybase's public JDBC server and run a simple query (it can be found in samples/test.pl
):
Example 7.5. Connect to a server with DBD::Sybase
#!/usr/local/bin/perl # use DBI; my $dbh = DBI->connect("dbi:Sybase:server=JDBC", 'guest', 'sybase', {PrintError => 0}); die "Unable for connect to server $DBI::errstr" unless $dbh; my $rc; my $sth; $sth = $dbh->prepare("select \@\@servername"); if($sth->execute) { while(@dat = $sth->fetchrow) { print "@dat\n"; } }
You'll note this is the same program as for DBD::ODBC
with the exception of the connect
statement. Welcome to the magic of DBI!