IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SGBD Perl Discussion :

Connection SQLite distante


Sujet :

SGBD Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Connection SQLite distante
    Bonjour à tous. Je débute actuellement en Perl et je souhaiterais :

    1 - me connecter à une base SQLite distante
    2 - récupérer certaine valeurs
    3 - envoyer ces valeurs dans le LDAP

    Donc à l'heure actuelle je bugge ... à la première étape. Donc je ne vais pas traiter de la partie LDAP

    Donc je dispose d'un pc client et d'un pc source qui tourne sous Debian etch avec Xivo ( solution open source téléphonique basé sur Asterisk.)
    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
    #!/usr/bin/perl
     
    use warnings;
    use strict;
     
    use DBI;    # Charger le module DBI
     
    # Parametres de connexion à la base de données
    my $BaseDeDonnees = "/var/lib/asterisk/astsqlite";
    my $NomHote       = "xxxx"; # Il est possible de mettre une adresse IP 
    my $login         = "";      # login
    my $MotDePass     = "";          # Nous n'avons pas de mot de pass
     
    # Connection à la base de données mysql
    my $dbh = DBI->connect( "dbi:SQLite:dbname=$BaseDeDonnees;host=$NomHote;",
        $login, $MotDePass )
        or die "Connection impossible à la base de donnees $BaseDeDonnees !";
     
    my @request;
    my $prep = $dbh->prepare("SELECT callerid FROM usersip");
    $prep->execute() or die "Echec requete\n";
    while ( my ($ide) = $prep->fetchrow_array) { push(@request , $ide);
    }
     
    $prep->finish();
    Comme vous pouvez le constater , sa ressemble énormément au tutorial fournit sur dvp.net .

    Ceci dis sa ne marche pas , voici l'erreur relevé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DBD::SQLite::db prepare failed: no such table: usersip(1) at dbdimp.c line 271 at test2.pl line 24.
    Can't call method "execute" on an undefined value at test2.pl line 25.
    J'imagine que la connection à ma DB n'est pas effective car , quoi que je mette en hsotname et dbname , sa ne marche pas. Sa ne me marque meme pas Erreur de connection.

    Pensant que le script foiré , j'ai testé avec mysql et la sa marche nikel ( ou si je met des conneries dans les hosts , il me dit bien " erreur de connection " )

    J'ai installé tous les drivers SQLite. Donc voilà je m'en remet à vous:

    1 - La connection SQLite distante est t'elle possible ?
    2 - Ma connection string est t'elle bonne ?
    3 - Est t'il possible de mettre un chemin comme dans mon exemple pour la dbname ?

    Best regards;

    PS : pas d'iptables sur les 2 machines

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Essaye cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $prep = $dbh->prepare("SELECT callerid FROM usersip") or die("Pb avec prepare, ".$dbh->errstr."\n");
    Tu pourras déjà voir s'il te rapporte d'autres messages d'erreur.

    Sinon, la table usersip existe ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre réponse rapide , malheuresement j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DBD::SQLite::db prepare failed: no such table: usersip(1) at dbdimp.c line 271 at test2.pl line 24.
    Pb avec prepare, no such table: usersip(1) at dbdimp.c line 271
    Personellement , je penche plus pour un problème de connection à la base. Mais je n'ai aucun moyen de voir sa. Comme je l'ai dis précédement , que je tape des infos erronées ou pas , je n'ai jamais " Connection impossible à la base de donnees $BaseDeDonnees ! " qui s'affiche.

    Et oui la table usersip existe dans sqlite /var/lib/asterisk/astsqlite. C'est pour sa aussi que je demande si je peut mettre un chemin comme dbname


  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    En effet, c'est bizarre, tu as pourtant bien installé le module DBD::SQLite.

    Dans la doc du driver, tu peux mettre un fichier dans dbname
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use DBI;
      my $dbh = DBI->connect("dbi:SQLite:dbname=dbfile","","");

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Package perl-DBD-SQLite-1.14-3.el5.i386 already installed and latest version
    Nothing to do
    J'ai installé les drivers sur les 2 machines , j'ai une nouvelle erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    DBD::SQLite::db prepare failed: file is encrypted or is not a database(26) at dbdimp.c line 271 at try.pl line 22.
    Pb avec prepare, file is encrypted or is not a database(26) at dbdimp.c line 271
    EDIT : Je viens d'installer libdbd-sqlite2-perl et le problème précédent semble etre résolu. Du moins j'ai du changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dbi:SQLite: en dbi:SQLite2:
    Ce connection string est t'il bon ?

    Cependant je n'ai toujours aucun affichage , et je ne peut savoir si la connection est vraiment effective car , si je met des infos eronnés , je n'ai aucun message d'erreur qui apparait.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Resolu , j'ai passé ma base en SQLite2

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bon bah c'est une bonne nouvelle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/07/2009, 18h20
  2. connection server distant
    Par fraoustin dans le forum DB2
    Réponses: 1
    Dernier message: 22/06/2006, 14h28
  3. Connection Serveur Distant SQL Server 2000
    Par LeNeutrino dans le forum JBuilder
    Réponses: 2
    Dernier message: 16/11/2005, 10h45
  4. Connection bd "distante"
    Par krfa1 dans le forum ASP
    Réponses: 2
    Dernier message: 13/09/2005, 14h07
  5. connection server distant - interbase
    Par thanandra dans le forum InterBase
    Réponses: 5
    Dernier message: 04/11/2003, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo