Importation d'un Fichier Texte

Bouchratssi Messages postés 9 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 28 juin 2004 - 27 avril 2004 à 11:32
Bouchratssi Messages postés 9 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 28 juin 2004 - 28 avril 2004 à 17:04
Salut, je dois developper une application sous vb6 et la base de données je l'ai sous Oracle 8i, le probleme c'est que les données doivent être importées d'un fichier texte à partir du lecteur disquette dans la base de données
Svp c'est urgent
Merci d'avance pour votre aide
Bouchra

4 réponses

ludolitaliano Messages postés 17 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 11 mai 2004
27 avril 2004 à 12:00
Moi j'ai fait comme ça et ça marche :

Public Sub ChargeDansTable(StringComplet As String, NbChamps As Integer, NomTable)
    'StringComplet : Chemin et nom de fichier txt à importer
    'NbChamps : nombre de colonnes du fichier texte à importer
    'NomTable : Nom de la table Oracle dans laquelle insérer les données
    
    'Charge le contenu d'un fichier texte dans la table ImportTable
    Dim Champ As String
    Dim i As Integer
    
    Open StringComplet For Input As #1
    
    If Not EOF(1) Then
        'On saute la première ligne car elle contient les en-têtes des colonnes
        Line Input #1, Champ
            
        'Initialisation de la commande SQL
        CodeSql = "INSERT INTO " & NomTable & " VALUES ('"
    End If
    
    i = 1
    Do While Not EOF(1)
        'Lecture d'une ligne de données dans le fichier
        'On n'importe que les NbChamps premiers champs du fichier
        'On lit les NbChamps-1 premiers champs
        Input #1, Champ        If i <NbChamps - 1 Then CodeSql CodeSql & Replace(Champ, "'", "''") & "', '"
        
        'On lit le NbChamps ème champ, on ferme l'instruction SQL        If i NbChamps Then CodeSql CodeSql & Replace(Champ, "'", "''") & "');"
        
        'Et on exécute l'instruction SQL complète
        If i = NbChamps Then
            Call ExecCodeSql(Cnx, CodeSql)
            Line Input #1, Champ
            i = 0
            
            'Réinitialisation de la commande SQL pour l'insertion suivante
            CodeSql = "INSERT INTO " & NomTable & " VALUES ('"
        End If
        
        i = i + 1
    Loop

    Close #1
End Sub


Avec :

Public Sub ExecCodeSql(Cnx As Connection, CodeSql As String)
    '14/04/04
    
    'classe et instance du jeu d'enregistrements
    Dim Rs As ADODB.Recordset
    Set Rs = New ADODB.Recordset
    
    'Exécution de la requête sur la base
    Rs.Open CodeSql, Cnx
    
End Sub


et :

Public Cnx As ADODB.Connection


Cnx est une connetion que j'ouvre en début de session et qui sert pour tous les appels à la base Oracle et qui se présente de la forme :

Provider=MSDASQL.1;Extended Properties="DSN=ECI;UID=PierreDupond;PWD=MotDePasse;DBQ=GestDev;"
0
Bouchratssi Messages postés 9 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 28 juin 2004
28 avril 2004 à 11:24
Merci pour ton aide mais j'ai une question, je veux savoir si ça marche avec SQL Server 7.0
Merci encore une fois ça m'a beaucoup aidé
Bouchra
0
ludolitaliano Messages postés 17 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 11 mai 2004
28 avril 2004 à 13:51
Je n'ai jamais fait de SQL Server mais je pense que ça doit fonctionner à partir du moment où tu utilises ADO.

La machine c'est bien, l'Homme c'est mieux
0
Bouchratssi Messages postés 9 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 28 juin 2004
28 avril 2004 à 17:04
Slt merci pour la réponse je vais l'essayer
Merci encore une fois pour l'aide
A+
Bouchra
0
Rejoignez-nous