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 :

update table BD


Sujet :

SGBD Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut update table BD
    Bonjour a tous;
    J’ai un fichier texte qui contient des lignes sous la forme suivante :
    N°livre
    Nom livre
    Réf Livre

    N°livre
    Nom livre
    Réf Livre
    …..
    Dans ma base de données j’ai une table livre (N°livre, Nom livre, Réf livre) déjà rempli. Je cherche un programme perl qui me permet da parcourir mon fichier texte et faire pour chaque N°livre un update des autres champs de ma table.

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Qu'est-ce qui te pose problème exactement ? Ouvrir le fichier texte ?
    L'analyser ligne par ligne ? te connecter à la BDD ? écrire les requêtes UPDATE ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut update table bd
    qui me pose problème c'est L'analyser ligne par ligne puis écrire les requêtes UPDATE.

  4. #4
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    Je cherche un programme perl qui me permet da parcourir mon fichier texte et faire pour chaque N°livre un update des autres champs de ma table.
    Bonsoir. Je ne vais pas te donner du tout cuit, juste un petit coup de pouce.
    1. Tes enregistrements étant multilignes, tu vas avoir besoin lors d'une lecture ligne par ligne d'une gestion d'état (afin de savoir quand on passe à un nouvel enregistrement). Un moyen très simple est de procéder comme suit :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      #!/usr/bin/perl
      use strict;
      use warnings;
       
      my @fields = ();
      while (<>) {
          chomp;
          if ($_) {
              push @fields, $_;
              next;
          }
          print join(', ', @fields), "\n";
          @fields = ();
      }
    2. Pour te connecter à la base, utilise le module Mysql ou mieux DBI (jette un oeil à la doc sur le CPAN pour plus de détail). Je te donne un exemple type (inspiré de ton problème):
      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
      use DBI;
       
      my $dbh = DBI->connect('dbi:mysql:yourdatabase:yourhostname', 'yourusername', 'yourpassword')
          or die "Couldn't connect to database: " . DBI->errstr;
      my $sth = $dbh->prepare('SELECT * FROM books')
          or die "Couldn't prepare statement: " . $dbh->errstr;
      $sth->execute()
          or die "Couldn't execute statement: " . $sth->errstr;
       
      while (@data = $sth->fetchrow_array()) {
          my $id = $data[1];
          my $title = $data[2];
          my $reference = $data[3];
          print "\t$id: $title $reference\n";
      }
       
      $db_handle->disconnect();
    3. Pour la requête UPDATE (là c'est du SQL pas du perl) quelque chose comme ça :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      UPDATE books SET 
      title='your new title', reference='blabla' 
      WHERE id='your id';
    Bon en fin de compte, c'est plutôt un sacré coup de pouce, non ?

    Il ne te reste plus qu'à poster tes essais et questions.

Discussions similaires

  1. Problème de Syntaxe SQL (Update Table)
    Par Thibaut_Dupont dans le forum Access
    Réponses: 15
    Dernier message: 17/07/2006, 16h32
  2. [TimesTen]pb update table
    Par peppena dans le forum Oracle
    Réponses: 4
    Dernier message: 05/06/2006, 14h36
  3. UPDATE TABLE ORACLE
    Par Poisson59 dans le forum Oracle
    Réponses: 10
    Dernier message: 30/11/2005, 15h24
  4. [MySQL] pb upload image et update table
    Par digger dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 12/11/2005, 14h09
  5. UPDATE : table à partir d'une autre
    Par Laura dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/10/2003, 21h34

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