FreeTDS est un jeu de librairies permettant à un programme
écrit en C de communiquer avec une base Sybase ou MS SQL Server.
Il est téléchargeable à partir du site http://www.freetds.org/.
Voici les étapes nécéssaires pour installer FreeTDS
:
$ tar xvfz freetds-0.53.tgz
$ cd freetds-0.53
$ configure
Par défaut, FreeTDS est installé dans /usr:local/lib.
Pour installer FreeTDS sous /usr/lib, on tapera :
$ configure --prefix=/usr
On lance ensuite la compilation
$ make
Une série de tests peuvent être effectués de manière automatique, afin de voir si la connexion à une base Sybase peut s'établir correctement. Pour cela il faut commencer par créer un fichier .freetds.conf dans son répertoire $HOME. Ce fichier contient des informations concernant les serveurs auxquels FreeTDS peut se connecter. En voici un exemple :
initial block size = 512
swap broken dates = no
swap broken money = no
# Database server login method, if both server and domain
# logins are enabled, domain login is tried first if a domain
# is specified, and if that fails the server login will be used.
try server login = yes
try domain login = no
# The default authentication domain, can be overridden by
# specifying a username with a domain prefix, e.g. DOMAIN\username
; nt domain = WORKGROUP
# If the server responds with different domain try that one?
cross domain login = no
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug level = 10
# Command and connection timeouts
; timeout = 10;
; connect timeout = 10;
# This is a Sybase hosted database server, if you are directly on the
# net you can use it to test.
[JDBC]
host = cephise.cines.fr
port = 8514
tds version = 5.0
On notera que ce fichier contient des infos concernant le serveur cephise.cines.fr. Ce serveur est réprésenté par la chaine "JDBC".
Le fichier PWD, présent dans le répertoire courant, doit contenir le serveur et les identifiants nécéssaires pour se connecter à une base Sybase. Il faut donc éditer le fichier PWD de façon à ce qu'il ressemble à ceci :
Pour lancer les tests :
$ make check
Pour installer FreeTDS sur votre système (en tant que root):
$ su -c 'make install'
Le module DBD::Sybase est une implémentation de l'API DBI
pour Sybase, téléchargeable à l'adresse http://www.mbay.net/~mpeppler/.
Pour de plus amples informations concernant DBI, se reporter à http://dbi.perl.org.
Pour installer DBD::Sybase :
$ tar xvzf DBD-Sybase-0.94.tar.gz
$ cd DBD-Sybase-0.94
$ perl Makefile.PL
$ make
De même que pour FreeTDS, il est possible à ce stade de
lancer des test pour vérifier les possibilités de connexions.
Pour cela, éditer le fichier PWD présent dans le répertoire
courant, de façon à ce qu'il ressemble à :
Ensuite, lancer les tests :
$ make test
Si tout s'est bien déroulé (pas de messages d'erreurs
ou d'attentes interminables), on peut installer DBD::Sybase sur le système
(en tant que root).
$ su
$ make install
#!/usr/bin/perl
use DBI();
$dbh = DBI->connect("dbi:Sybase:server=JDBC",
"login",
"pass");
@ary_data = queryAllRecords("select * from genelist");
foreach $seq (@ary_data) {
print $seq->{genename} . "\n";
}
#
# recupere un tableau a partir d'une requete SQL
#
sub queryAllRecords {
my ($lstr_SQLquery) = @_;
my $sth = $dbh->prepare($lstr_SQLquery);
$res = $sth->execute();
@rows = ();
while ($row = $sth->fetchrow_hashref)
{
push(@rows, $row);
}
return @rows;
}
Ce script affiche quelque chose comme ceci :