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 :

erreur requete SQlite


Sujet :

SGBD Perl

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 92
    Points : 116
    Points
    116
    Par défaut erreur requete SQlite
    Bonjour,

    je voudrais effectuer une requête SQLite avec des données saisie depuis une interface graphique ne Tk.

    Quand j'entre cette commande dans la console j'obtiens le bon résultat mais, depuis mon programme en perl je n'obtiens pas ce que je veux.

    Voici ma requete SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sqlite> SELECT quantitee FROM vins WHERE libelle='Leoville' AND millesime='1989' AND couleur='rouge';
    50
    sqlite>
    Voici mon code perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    print "libelle=$_[1] AND millesime=$_[2] AND couleur=$_[3]\n";
    	my $RequeteSQL = <<"SQL";
    		SELECT quantitee FROM vins
    		WHERE libelle='$_[1]' AND millesime='$_[2]' AND couleur='$_[3]'
    SQL
    	my $select = $connect->prepare($RequeteSQL);
    	$select->execute() || die "\nechec de la requete\n";
    	print "le resultat est : ", $select->rows , "\n";
    Et voici le resultat du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    libelle=Leoville AND millesime=1989 AND couleur=rouge
    le resultat est : 0
    je devrais obtenir 50 mais j'obtiens 0. Je ne comprend vraiment pas pourquoi. J'ai supposé une erreur au niveau des quotes pour les variables mais je n'y crois pas trop.
    Est-il possible qu'il y ai un problème de casse ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Pour debugger, il vaudrait mieux imprimer la valeur de $RequeteSQL.

    Mais bon, il n'y a rien d'évident.
    Même un effet de bord sur le @_ parait improbable.
    Peut-être les tabulations ajoutées dans la requête ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    rows
    $rv = $h->rows;
    or
    $rv = $DBI::rows



    This returns the number of rows effected by previous SQL statement and equivalent to $DBI::rows.
    Tu ne récupères donc pas le résultat de ta requête avec la méthode rows

    Je t'invite à regarder ce lien pour pouvoir récupérer le résultat d'une requête:

    http://www.tutorialspoint.com/perl/perl_database.htm

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 92
    Points : 116
    Points
    116
    Par défaut
    Tu as raison Mygale1978. En suivant l'exemple de récupération de données dans le lien que tu as donnée, ça fonctionne.

    Voici un code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    print "libelle=$_[1] AND millesime=$_[2] AND couleur=$_[3]\n";
    	my $RequeteSQL = <<"SQL";
    		SELECT quantitee FROM vins
    		WHERE libelle='$_[1]' AND millesime='$_[2]' AND couleur='$_[3]'
    SQL
    	my $select = $connect->prepare($RequeteSQL);
    	$select->execute() || die "\n\nEchec requete : \n$RequeteDepCheflieu";
    	$select->rows;
    	while (my @row = $select->fetchrow_array()) {
    	my ($resultat) = @row;
    	print "le resultat est  : $test\n";
    Et là j'obtiens bien 50 comme prévu ^^

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

Discussions similaires

  1. [SQL] Erreur requete persistante
    Par lecail65 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/08/2006, 16h17
  2. Erreur requete SQL/Access
    Par polianita dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/06/2006, 15h20
  3. Erreur requete en VBA
    Par temar dans le forum Access
    Réponses: 15
    Dernier message: 19/05/2006, 19h50
  4. Erreur requete MySQL
    Par kanabzh29 dans le forum Requêtes
    Réponses: 7
    Dernier message: 05/05/2006, 14h08
  5. [debutante] erreur requete update
    Par LineLe dans le forum ASP
    Réponses: 5
    Dernier message: 12/09/2003, 13h05

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