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

ASP Discussion :

Enregistrer des données dans BDD depuis un fichier TXT


Sujet :

ASP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Enregistrer des données dans BDD depuis un fichier TXT
    Bonjour,

    Je souhaite enregistrer les données contenues dans un fichier txt dans une base de données SQL Server. Le problème est que pour chaque ligne j'ai 11 champs séparés par des points virgules à renseigner. Je debut un peu dans la manipulation de fichier texte et je ne vois pas par quel bout commencer !

    Voici un exmple du fichier txt

    A;94;TEST;22/08/2007;22/08/2007;02SW44;1.2125;P;1,25;2;0;
    A;94;TEST;22/08/2007;22/08/2007;03HA20;0.5375;P;1,25;0;0;
    A;94;TEST;22/08/2007;22/08/2007;03HA23;0.6875;P;1,25;0;0;
    A;94;TEST;22/08/2007;22/08/2007;04T190;1.175;N;1,25;0;0;

    Merci d'avance pour votre aide

  2. #2
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Si ton fichier est petit (quelque centaine de lignes), le plus simple est de lire les ligne du fichier avec l'objet FileSytemObject, de parser les ligne et de les inserer dans la bdd (ligne à ligne) avec une commande Insert.

    Si ton fichier est volumineux, tu as interet à utiliser les fonctionnalité interne du SGBD pour importer ton fichier.

    Par exemple en sql server tu peux utiliser BCP ou bulk insert
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Parser des lignes ?
    Merci pour ton aide
    je cherche comment parser les lignes et je ne sais pas le faire.
    Pour l'insertion je pense qu'il n'y aura pas de problème

    Merci

  4. #4
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    je cherche comment parser les lignes et je ne sais pas le faire.
    Alors un petit exemple
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Option Explicit
    Const ForReading =1
    Const MY_FILE_DELIMITER = ";"
     
    Dim oFso
    Dim oFileReader
    Dim sFilePath
    Dim sLineRead
    Dim aLineValues
    Dim sQuery
    Dim iCpt
    Dim oCnn
     
    sFilePath = "c:\monfichier.txt"
    Set oFso = Server.CreateObject("Scripting.FileSystemObject")
    Set oCnn= Server.CreateObject("ADODB.Connection")
    ' ouverture de la conection
    oCnn.open ......
     
    ' lecture du fichier
    Set oFileReader = oFso.OpenTextFile(sFilePath, ForReading) ' ouverture du fichier pour lecture
    ' pour toutes les lignes du fichier
    Do While Not oFileReader.AtEndOfStream 
        sLineRead = oFileReader.ReadLine
        ' ci dessous on parse les valeur dans un  tableau
        aLineValues = split(sLineRead, MY_FILE_DELIMITER)
     
        ' construction de la requête :
        sQuery = ""
        For iCpt=0 To Ubound(aLineValues) 
            sQuery = sQuery & ",'" & aLineValues(iCpt)  & "'"
        Next
        ' supression de la 1ere virgule
        sQuery = mid(sQuery, 2)
        ' on complète la requête
        sQuery = "Insert Into matable (champ1, champ2, ..., champ11) Values(" & sQuery & ")"
        ' execution de la requête
        oCnn.execute sQuery
    Loop
    oFileReader.close
    Set oFileReader = Nothing
    Set oFso = Nothing
    voili

    Mais si ton fichier est volumineux, un bulk insert sera beaucoup plus rapide
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 12
    Points : 10
    Points
    10
    Par défaut RESOLU
    Merci pour tout

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

Discussions similaires

  1. [MySQL] S'assurer du bon enregistrement des données dans BDD mysql
    Par lilly91 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/12/2009, 14h14
  2. Réponses: 6
    Dernier message: 05/02/2008, 22h52
  3. Enregistrer des données dans un fichier externe
    Par TarZan78 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/11/2007, 09h52
  4. [File] enregistrer des données dans un fichier
    Par jontleman dans le forum Windows Forms
    Réponses: 8
    Dernier message: 23/08/2007, 13h08
  5. [VB6]enregistrer des données dans un fichier
    Par tchinette42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/04/2006, 18h55

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