#!/usr/bin/perl -w

# insert.pl : enregistre dans la base de donnŽe SQL les fichiers
# ascii fournis par le client.

# Format du fichier : Autant de colonnes que nŽcessaire sŽparŽes par
# des \t. La premire ligne contient le nom des colonnes, les lignes
# suivantes les donnŽes.

use DBI;

# Tous les fichiers .asc sont constituŽs de colonnes sŽparŽs par des tabulations.
# Le diese constitue comme en Perl un commentaire.
$Racine = "/home/clients/Evrat87/DataBase/";
$FILE_PROD = $Racine."database.txt";	# fichier contenant la table products.

$db_user = "mafma";
$db_pass = "mafma";
$db_base = "dbi:mysql:Mafma";
################################################################################
# Ouverture de la base de données                                              #
$dbh = DBI->connect( $db_base , $db_user, $db_pass ) || die $DBI::errstr;      #
################################################################################
# On supprime l'ancienne table Produits                                        #
$QUERY = "drop table Produits";                                                #
$sth = $dbh->prepare( $QUERY) || die $dbh->errstr;                             # 
$sth->execute || die $dbh->errstr;                                            # 
# Création de la table Produits.                                               #
$QUERY_CREATE  = "create table Produits (CodeProduit varchar(20),              #
                                         Echelle varchar(10),                  # 
					 Type varchar(30),                     #
					 Fabricant varchar(50),                #
					 Marque varchar(50),                   # 
					 Description varchar(200),             # 
					 Prix varchar(16),                     # 
					 Photo varchar(50),                    #
					 PrixDetaillant varchar(16))";         #
$sth = $dbh->prepare( $QUERY_CREATE ) || die $dbh->errstr;                     # 
$sth->execute || die $dbh->errstr;                                             # 
################################################################################
# Remplissage de la table products avec les données du fichier $FILE_PROD.     #
# Création de la requ¼te.                                                      #
$QUERY_INSERT  = "insert into Produits values (?,?,?,?,?,?,?,?,?)";            #
# Ouverture du fichier $FILE_PROD en lecture seulement.                        #
open( FIC, $FILE_PROD ) or die("Impossible d'ouvrir le fichier $FILE_PROD");   #
# Préparation de la requ¼te et traitement des données.                         #
$sth = $dbh->prepare( $QUERY_INSERT ) || die $dbh->errstr;                     #
print "Mise ± jours de la table products...";                                  #
$Text = <FIC>; # Ne pas lire la premiere ligne.                                #
while( <FIC> )                                                                 #
{                                                                              #
  chomp;                                                                       #
  ($CodeProduit,$Echelle,$Type,$Fabricant,$Marque,$Description,$Prix,$Photo,$PrixDetaillant) = split(/\t/);  #
  $sth->execute($CodeProduit,                                                  #
                $Echelle,                                                      #
		$Type,                                                         #
		$Fabricant,                                                    #
		$Marque,                                                       #
		$Description,                                                  #
		$Prix,                                                         #
		$Photo,                                                        #
		$PrixDetaillant) || die $dbh->errstr;                          #
}                                                                              #
print "\t\t\t[OK]\n";                                                          #
close(FIC);                                                                    #
################################################################################
$dbh->disconnect;
print "Initialisation de la database effectuŽ.";

