Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 11h18   #1
Invité régulier
 
Homme
Sopotel
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Sopotel
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 5
Points : 5
Par défaut importer des fichiers csv dans sql server

Bonjour j'aimerais exporter les données ci-dessous dans une base de données sql server 2008 et tout ça sur une seule ligne. Cela me permettra d'avoir un suivi des instructions faite par chaque machines (ici la machine EDS2 3A2-1711). Il faut que je respecte l'ordre chronologique.

2011.06.02 00:00:00.07,/Alia,50.19.7.187,EDS2 3A2-1711,,,,
2011.06.02 00:01:06.51,EDS2 3A2-1711,BagSc,,,,,
2011.06.02 00:01:08.09,EDS2 3A2-1711,TagIn,NAFZ2014850,,,,
2011.06.02 00:01:09.68,EDS2 3A2-1711,MfDec,NAFZ2014850,R,,,
2011.06.02 00:01:09.71,EDS2 3A2-1711,SendB,NAFZ2014850,50.2.4.3,960,R,
2011.06.02 00:01:09.90,EDS2 3A2-1711,SentB,NAFZ2014850,50.2.4.3,,,
2011.06.02 00:01:09.83,PO-2A-10G-3,WsRcv,NAFZ2014850,711,960,0,
2011.06.02 00:01:10.33,PO-2A-10G-3,WsSho,NAFZ2014850,711,0,,
2011.06.02 00:01:12.52,PO-2A-10G-3,WsDec,NAFZ2014850,711,0,R,

Code :
1
2
3
4
 
 
 Dim Machines(0 TO 200, 0 TO 1) AS Object 'tableau enregistrement machine (Nom machine, ip)'
 Dim SuiviBagage(0 TO 20000, 0 TO 13) AS Object 'tableau de suivi tagbagage (Date,Timer Bagscan,Nom machine,Ip machine,Timer Tagin,Tag,Timer MfDec,MfDEC,Timer SentB,Nom de poste,Ip poste,Timer WsSho,Timer Wsdec,WSdec)'
Quelles commandes en visual basic faut il appliquer pour récupérer ses informations,dans ce fichier csv délimité par des virgules?

Dans un premier temps je mets dans un tableau temporaire mes informations, je ne sais pas si je procède de la bonne manière. La commande BULK INSERT peut elle être intéressante ici.

Je suis novice en sql server, je vous remercie d'avance de l'aide apportée.
nathantahiti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 14h10   #2
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Oublies Visual Basic pour ce genre de manipulation. Utilises Integration Service (SSIS).

Un tutoriel est disponible à cette adresse : http://odelmotte.developpez.com/tuto.../introduction/
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 15h23   #3
Invité régulier
 
Homme
Sopotel
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Sopotel
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 5
Points : 5
Bonjour, je vous remercie de votre réponse.
J'ai lu le tutoriel, donc on doit créer une table sur sql server 2008 et ensuite utiliser SSIS pour stocker les données de mon fichier csv ou log .

En faite ce qui me pose problème, c'est que la machine qui m'édite mes fichiers le fait à des heures précise. Pour le log toutes les heures et pour le csv à la fin de la journée. Donc il y a un paquet de lignes et de fichier générés
J'aimerais bien récupérer ses informations automatiquement et les stocker dans ma base de données à l'aide d'une application.
Plus précisément mon code devra:

1) Récupérer les fichiers sur un server
2) Stocker toutes les informations qui m'intéresse dans sql server 2008
3) A l'aide de crystal report faire des opérations sur ma base de données ( statistique, graphe etc. )

Mais si cela peut être fait plus simplement je suis preneur.
nathantahiti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 15h48   #4
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
C'est tout à fait possible avec SSIS.

SSIS dispose d'un composant "Tâche de système de fichier" qui te permettra de gérer tes fichiersc csv

En gros, le SSIS lira le fichier Log, convertira les données et les écrira dans une table SQL. Pour cela, il faudra bien entendu que le service SQL qui exécutera le lot dispose des droits nécessaires sur le répertoire concerné.

Le composant Tâche de système de fichier, te permettra de détruire ou déplacer ton fichier csv dans un autre répertoire, par exemple.

Bon au début, quand on ne connait pas, c'est casse tête, mais avec l'habitude, tu verras que SSIS est l'outil idéal pour importer des données provenant de fichier texte ou d'autres bases de données.

Bon travail.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 10h49   #5
Invité régulier
 
Homme
Sopotel
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Sopotel
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 5
Points : 5
Bonjour, SSIS est vraiment pas mal comme système de gestion de fichiers. Mais comme tu le dit et je confirme c'est casse tête.

Penses-tu que je pourrais vraiment tout faire avec, comme par exemple choisir les données précise que je veux traiter.
Tu connais un bouquin complet pour se former à SSIS
nathantahiti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 11h03   #6
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
Il y a un forum pas loin pour poser quelques questions
Sinon, c'est une interface complètement graphique et finalement assez intuitive.

On utilise une tâche de dataflow (transfert de données) et dans cette tâche on a à disposition des composants de sources, transformations et destinations.
Il ne reste qu'à choisir, relier les petites flèches et paramétrer ce que tu veux dans les transformations avec un langage spécifique mais très proche du SQL.

Le tout c'est d'éviter les pièges comme brancher le composant de sources sur un fichier texte dans lequel il va détecter automatiquement des colonnes de types nvarchar que l'on va vouloir insérer dans un varchar... là, il refuse et il faut passer par un composant de conversion avant.
__________________
Alexandre Chemla - Consultant MS BI chez Masao
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 14h26   #7
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Citation:
Envoyé par nathantahiti Voir le message
Bonjour, SSIS est vraiment pas mal comme système de gestion de fichiers. Mais comme tu le dit et je confirme c'est casse tête.

Penses-tu que je pourrais vraiment tout faire avec, comme par exemple choisir les données précise que je veux traiter.
Tu connais un bouquin complet pour se former à SSIS
Professional SQL Server® 2008 Integration Services aux éditions Wiley.

Mais je te conseille le tutoriel pour commencer + piocher ici et là dans des blogues ou fora. Le livre te permttra ensuite d'approfondir le sujet.

Le travail que tu dois entreprendre est justement un cas d'école : lire un fichier texte, convertir les données et les insérer dans une table. C'est un bon début...
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h56   #8
Invité régulier
 
Homme
Sopotel
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Sopotel
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 5
Points : 5
Citation:
Professional SQL Server® 2008 Integration Services aux éditions Wiley.

Mais je te conseille le tutoriel pour commencer + piocher ici et là dans des blogues ou fora. Le livre te permttra ensuite d'approfondir le sujet.

Le travail que tu dois entreprendre est justement un cas d'école : lire un fichier texte, convertir les données et les insérer dans une table. C'est un bon début...
Oui je confirme et SSIS me simplifie vraiment les choses, mais je voudrais travailler avec cette base donnée, suis-je obligé de passer par Visual Basic pour gérer ou trier ma base et sélectionner les informations qui m'intéresse.

En gros ça serais de mettre ses données sur une seule ligne :


2011.06.02 00:00:00.07,/Alia,50.19.7.187,EDS2 3A2-1711,,,,
2011.06.02 00:01:06.51,EDS2 3A2-1711,BagSc,,,,,
2011.06.02 00:01:08.09,EDS2 3A2-1711,TagIn,NAFZ2014850,,,,
2011.06.02 00:01:09.68,EDS2 3A2-1711,MfDec,NAFZ2014850,R,,,
2011.06.02 00:01:09.71,EDS2 3A2-1711,SendB,NAFZ2014850,50.2.4.3,960,R,
2011.06.02 00:01:09.90,EDS2 3A2-1711,SentB,NAFZ2014850,50.2.4.3,,,
2011.06.02 00:01:09.83,PO-2A-10G-3,WsRcv,NAFZ2014850,711,960,0,
2011.06.02 00:01:10.33,PO-2A-10G-3,WsSho,NAFZ2014850,711,0,,
2011.06.02 00:01:12.52,PO-2A-10G-3,WsDec,NAFZ2014850,711,0,R,
nathantahiti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h30   #9
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Citation:
Envoyé par nathantahiti Voir le message
Oui je confirme et SSIS me simplifie vraiment les choses, mais je voudrais travailler avec cette base donnée, suis-je obligé de passer par Visual Basic pour gérer ou trier ma base et sélectionner les informations qui m'intéresse.

En gros ça serais de mettre ses données sur une seule ligne :


2011.06.02 00:00:00.07,/Alia,50.19.7.187,EDS2 3A2-1711,,,,
2011.06.02 00:01:06.51,EDS2 3A2-1711,BagSc,,,,,
2011.06.02 00:01:08.09,EDS2 3A2-1711,TagIn,NAFZ2014850,,,,
2011.06.02 00:01:09.68,EDS2 3A2-1711,MfDec,NAFZ2014850,R,,,
2011.06.02 00:01:09.71,EDS2 3A2-1711,SendB,NAFZ2014850,50.2.4.3,960,R,
2011.06.02 00:01:09.90,EDS2 3A2-1711,SentB,NAFZ2014850,50.2.4.3,,,
2011.06.02 00:01:09.83,PO-2A-10G-3,WsRcv,NAFZ2014850,711,960,0,
2011.06.02 00:01:10.33,PO-2A-10G-3,WsSho,NAFZ2014850,711,0,,
2011.06.02 00:01:12.52,PO-2A-10G-3,WsDec,NAFZ2014850,711,0,R,
Je ne comprends pas très bien où te veux en venir. Qu'est-ce que tu entends par trier la base de données ? Quant aux données, x lignes lues dans ton fichier csv te donnera x lignes dans la table de destination.
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 09h34   #10
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
En gros ça serais de mettre ses données sur une seule ligne
Exemple 10 lignes sur une seule ligne (multiplication des colonnes?)

A quels fins? Reporting?

Voyez du côté de PIVOT si c'est le cas (sujet maintes fois traité sur ce forum vous devriez trouver...).
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 12h02   #11
Invité régulier
 
Homme
Sopotel
Inscription : juillet 2011
Messages : 33
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Sopotel
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 33
Points : 5
Points : 5
Effectivement c'est bien pour faire du reporting.

En faite, je dois retracer les instructions faite par ma machine.

Date Heure Machine
2011.06.02 11:25:36.25, EDS2 3A2-1711, bagscan, tagin, mfdec, senB etc.
tout cela mise sur une seule ligne.

En gros j'utiliserai crystal report et avec un simple clique sur le nom de ma machine, j'ai un suivi de mes bagages.
Ce qui permettra de calculer le nombre de bagages scannés par machines sur un jour, un mois, une année, et visualiser les différentes tâches.
nathantahiti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h06.


 
 
 
 
Partenaires

Hébergement Web