Le module DBD::CSV permet de créer un fichier au format CSV pour récupérer les résultats d'une requète SQL.
Programmation > Perl
Recherche :   
Actualité Système Salon Concours Outils Programmation Devparadise Programmation HTML .Net JavaScript VBScript ASP PHP Visual Basic Perl Java Active X SQL XML WAP Delphi Graphisme Flash Web Design Promotion Référencement Publicité Valeur de votre site Outils Systèmes Windows Unix Linux Benchmark Hardware Réseaux locaux Droit Sécurité
Utilisation du module DBD::CSV pour créer un fichier .csv.
  Auteur : Magali GIARD

Le module DBD::CSV permet de créer un fichier au format CSV pour récupérer les résultats d'une requète SQL.

Publicité 
Le module DBD::CSV est un driver pour le module DBI (Database independent interface for Perl).
Ce module utilise le "moteur" SQL et crée un fichier de type .CSV (Comma separated values).
Il est surtout utilisé pour exporter des données sous MS Access ou MS Excel.

Ce module requière les modules suivants :

  • DBI
  • DBD::CSV
  • SQL::Statement
  • Text::CSV_XS
  • DBD::File

La connexion se fait grâce à "DBI->connect". Plusieurs attributs peuvent être nécessaires :
f_dir : définit le répertoire du csv
csv_eol : définit le caractère de fin de ligne du fichier
csv_sep_char : définit le caractère de séparation des différents champs
csv_escape_char : permet de doubler le caractère définit comme "csv_quote_char" s'il est trouvé dans la chaîne de caractères
csv_quote_char : définit le caractère de délimitation d'un champ comportant une chaîne de caractères avec des espaces

Au niveau SQL, on peut effectuer créations de table, sélections, insertions ou mises à jour : CREATE TABLE, SELECT, INSERT ou UPDATE ...
Il y a quelques petits bugs : les NULL et les entiers sont mal interprétés.


Exemple :
use DBI;

$dbh = DBI->connect(qq{DBI:CSV:f_dir=/csv;csv_eol=\; ;csv_sep_char=\; csv_escape_char="; csv_quote_char=";}) || die &errSQL ("Impossible de se connecter au serveur MySQL", $DBI::errstr);
$sqlCreate = "CREATE TABLE CopieCSV (NOM char(100), PRENOM char(100), EMAIL char(255), SOCIETE char(255))";
$sth = $dbh->prepare($sqlCreate) || die "Cannot prepare: " . $dbh->errstr();
$sth->execute() or die "Cannot execute: " . $sth->errstr();
$sth->finish();
$sqlInsert = "INSERT INTO CopieCSV (NOM, PRENOM, EMAIL, SOCIETE) VALUES ('Dupond', 'Jean', 'jdupond@dupond.fr', 'Dupond "R" SA' )";
$sth = $dbh->prepare($sqlInsert) || die "Cannot prepare: " . $dbh->errstr();
$sth->execute() or die "Cannot execute: " . $sth->errstr();
$sqlInsert = "INSERT INTO CopieCSV (NOM, PRENOM, EMAIL, SOCIETE) VALUES ('Dupond', 'Carine', 'cdupond@dupond.fr', 'Dupond SA' )";
$sth = $dbh->prepare($sqlInsert) || die "Cannot prepare: " . $dbh->errstr();
$sth->execute() or die "Cannot execute: " . $sth->errstr();

$sth->finish();
$dbh->disconnect();

rename "/csv/CopieCSV" ,"/csv/CopieCSV.csv";

Dans cet exemple, on obtiendra dans le fichier CopieCSV.csv :

NOM;PRENOM;EMAIL;SOCIETE;
Dupond;Jean;jdupond@dupond.fr;"Dupond ""R"" SA";
Dupond;Carine;cdupond@dupond.fr;"Dupond SA";


Pour en savoir plus sur le module DBD::CSV : http://www.mathematik.uni-ulm.de/help/perl5/doc/DBD/CSV.html

A lire aussi sur Devparadise.com :
  • Optimiser gratuitement ses serveurs WEB (IIS et Apache)
  • Simulation de la fonction LIMIT de MySQL avec SQL Server
  • avantage.devparadise.com : solution d'hébergement professionnel économique à ...
  • ASP et la création d'images à la volée
  • MySQL AB sera à Linux Expo Paris
  • A télécharger aussi sur Devparadise.com :
  • XAMPP 1.5.1 pour windows
  • acmemail 2.2.4
  • filtre ISAPI FastCGI pour IIS
  • mod_auth_mysql version 1.11 pour Linux/Unix
  • mod_auth_mysql version 1.11 pour windows

  • © 1997-2008 tous droits réservés Devparadise.com
    Les logos, et marques déposées sont la propriété de leurs détenteurs respectifs.
    Devparadise.com s'est engagé à respecter la confidentialité des données personnelles régies par la loi 78-17 du 6 janvier 1978.
    Déclaration C.N.I.L. n° 621623
    perl,SQL,module DBD::CSV,BDD