Bonjour à tous,

je suis sur debian 3.1 avec Perl 5.8.4 et une install de sybase 11-9.
J'ai plusieurs questions à poser concernant l'installation et la configuration des DBD::.

  • En règle générale, l'installation d'un DBD::* sur une machine implique t'elle d'avoir le SGBD installé (ou une partie) sur cette même machine. Par exemple, pour installer DBD::Sybase, est ce qu'il faut avoir un Sybase qui tourne en local, ou un client ...?
    Ou le DBD:: se suffit à lui même ?



  • J'ai installé sur la debian le DBD::Sybase. Voila l'output de la manip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    ROCK:/app/tempdbd/DBD-Sybase-1.07# perl Makefile.PL
    Sybase OpenClient 11.1.1 found.
     
    By default DBD::Sybase 1.05 and later use the 'CHAINED' mode (where available)
    when 'AutoCommit' is turned off. Versions 1.04 and older instead managed
    the transactions explicitly with a 'BEGIN TRAN' before the first DML
    statement. Using the 'CHAINED' mode is preferable as it is the way that
    Sybase implements AutoCommit handling for both its ODBC and JDBC drivers.
     
    Use 'CHAINED' mode by default (Y/N) [Y]: y
     
    Running in threaded mode - looking for _r libraries...
    No thread-safe Sybase libraries found
    The DBD::Sybase module need access to a Sybase server to run the tests.
    To clear an entry please enter 'undef'
    Sybase server to use (default: SYBASE):
    User ID to log in to Sybase (default: sa):
    Password (default: undef):
    Sybase database to use on SYBASE (default: undef): master
     
    * Writing login information, including password, to file PWD.
     
    Multiple copies of Driver.xst found in: /usr/local/lib/perl/5.8.4/auto/DBI/ /usr/lib/perl5/auto/DBI/ at Makefile.PL line 59
    Using DBI 1.53 (for perl 5.008004 on i386-linux-thread-multi) installed in /usr/local/lib/perl/5.8.4/auto/DBI/
    Writing Makefile for DBD::Sybase
     
     
    ROCK:/app/tempdbd/DBD-Sybase-1.07# make
    cc -c  -I/app/sybase/include -DNO_THREADS  -I/usr/local/lib/perl/5.8.4/auto/DBI -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.07\" -DXS_VERSION=\"1.07\" -fPIC "-I/usr/lib/perl/5.8/CORE"   Sybase.c
    cc -c  -I/app/sybase/include -DNO_THREADS  -I/usr/local/lib/perl/5.8.4/auto/DBI -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.07\" -DXS_VERSION=\"1.07\" -fPIC "-I/usr/lib/perl/5.8/CORE"   dbdimp.c
    Running Mkbootstrap for DBD::Sybase ()
    chmod 644 Sybase.bs
    rm -f blib/arch/auto/DBD/Sybase/Sybase.so
    LD_RUN_PATH="/app/sybase/lib" cc  -L/app/sybase/lib -shared -L/usr/local/lib Sybase.o dbdimp.o  -o blib/arch/auto/DBD/Sybase/Sybase.so   -L/app/sybase/lib -lct -lcs -lsybtcl -lcomn -lintl -lblk -ldl -lm
    chmod 755 blib/arch/auto/DBD/Sybase/Sybase.so
    cp Sybase.bs blib/arch/auto/DBD/Sybase/Sybase.bs
    chmod 644 blib/arch/auto/DBD/Sybase/Sybase.bs
    Manifying blib/man3/DBD::Sybase.3
     
     
    ROCK:/app/tempdbd/DBD-Sybase-1.07# make install
    Installing /usr/local/lib/perl/5.8.4/auto/DBD/Sybase/Sybase.so
    Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
    Writing /usr/local/lib/perl/5.8.4/auto/DBD/Sybase/.packlist
    Appending installation info to /usr/local/lib/perl/5.8.4/perllocal.pod
    ROCK:/app/tempdbd/DBD-Sybase-1.07#


  • une fois tout ca fait, j'ai essayé de faire tourné un ptit code sample de PERL, pour voir...
    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #!/bin/perl
     
    use strict;
    use DBI;
    use Getopt::Long;
     
    $| = 1;
     
    #get params
    my $host = '';
    my $user = 'sa';
    my $pass = '';
    my $database = 'master';
    my $instance = 'Default';
    my @data;
     
    #GetOptions ("instance=s" => \$instance,
    # "user=s" => \$user,
    # "pass=s" => \$pass,
    # );
     
     
    my $string = 'dbi:Sybase:server=Default;database=master';
     
    #connect
    my $dbh=DBI->connect('dbi:Sybase:server='.$instance.';database=master','sa','');
    et le problème, c'est que j'ai un énorme :
    SEGMENTATION FAULT... comme résultat.


Mon problème majeur, c'est que je ne suis pas sur du tout que le DBD::Sybase soit configuré comme il se doit.

Donc, je voudrais un coup de main pour vérifier cette config.

Merci à tous