[perl] connexion à un serveur MSSQL via freetds

connexion à un serveur MSSQL via freetds [perl] - Perl - Programmation

Marsh Posté le 07-01-2007 à 09:55:56    

Bonjour a tous,
 
Je rencontre quelques difficultés a me connecter a une base MS SQL depuis linux.
J'utilise une conf freetds déjà configurée (et qui fonctionne déjà pour d'autres choses)

Code :
  1. [plop@truc01 ~]$ locate freetds
  2. /outils/local-etc/freetds.conf
  3. /outils/local-etc/freetds.conf.ori
  4. /usr/local/freetds
  5. /usr/local/freetds/include
  6. /usr/local/freetds/lib
  7. [plop@truc01 ~]$ cat /outils/local-etc/freetds.conf
  8. [serveur1]
  9.         host = serveur1
  10.         port = 1433
  11.         tds version = 8.0
  12. [plop@truc01 ~]$ tsql -H serveur1 -U xxxx -P xxx -p 1433
  13. locale is "C"
  14. charset is "ANSI_X3.4-1968"
  15. Msg 5703, Level 0, State 1, Server xxxx\xxxx, Line 0
  16. Changed language setting to us_english.
  17. 1>


 
Par contre je ne reussi pas a me connecter a ce serveur via mon script perl

Code :
  1. [plop@truc01 ~]$ cat test_connect.pl
  2. #!/usr/bin/perl -w
  3. use warnings;
  4. use strict;
  5. use DBI;
  6. use DBD::Sybase;
  7. BEGIN
  8. {
  9.     $ENV{SYBASE} = "/usr/local/freetds";
  10. }
  11. my $user   = "xxx";
  12. my $passwd = "xxx";
  13. print "avant\n";
  14. my $dbh = DBI->connect("DBI:Sybase:server=serveur1", $user, $passwd) or die "connection impossible!";
  15. print "apres\n";
  16. ## la suite c'est pour la forme ... ca plante avant :/
  17. dbh->do("use Domaines" );
  18. my $sth;
  19. $sth = $dbh->prepare("select * FROM tableA" );
  20. if ($sth->execute)
  21. {
  22.         while(my @dat = $sth->fetchrow)
  23.         {       print "@dat\n"; }
  24. }
  25. exit(0);


 
Lorsque j'execute ce script :

Code :
  1. [plop@truc01 ~]$ ./test_connect.pl
  2. avant
  3. Server message: number=14 severity=1 state=18452 line=0 text=
  4. Segmentation fault


 
Je sais pas trop ou ca bloque.  
D'apres http://freetds.org/userguide/perl.htm ca a l'air pourtant simple :/
 
Une idée braves gens ?
Merci bien


Message édité par 3xc4l18ur le 07-01-2007 à 09:56:34
Reply

Marsh Posté le 07-01-2007 à 09:55:56   

Reply

Marsh Posté le 09-01-2007 à 13:37:18    

personne ne sait ou je n'ai pas été clair ?
C'est visiblement un probleme dû au driver Sybase, car si je modifie "DBI:Sybase:server=serveur1" en "DBI:Sybase:server=serveur", là c'est perl  qui me jette.
 
 
 
Merci


Message édité par 3xc4l18ur le 10-01-2007 à 13:37:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed