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

Bases de données Delphi Discussion :

Import fichier ASCII dans une base


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Points : 35
    Points
    35
    Par défaut Import fichier ASCII dans une base
    avec Delphi 7 et Oracle 8.1.7

    import d'un fichier ASCII fixe de 40car.(en comptant CRLF) de long et comportant 34000 lignes
    "10008CR00301100OOOOOO 00000000000000"

    avec un batchmove et un fichier de structure (.sch) , l'import dans la base prend 1 mn

    sans le BDE
    avec un blockread et (ADO) insertrecord (reconstitution des champs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    While not EOF(fic_atraiter) do
    begin
    BlockRead(fic_atraiter,data,sizeof(data),lu);
        Ma_TAbleADO.InsertRecord([data[2]+data[3]+data[4]+data[5]+data[6],
        StrToDatetime(DateEdit1.Text),
        data[7]+data[8]+data[9]+data[10]+data[11]+data[12]+data[13]+data[14]+data[15]+
        data[16],
        data[17]+data[18]+data[19]+data[20]+data[21]+data[22],
        data[24]+data[25]+data[26]+data[27]+data[28]+data[29]+data[30]+data[31]+data[32]
        +data[33]+data[34]+data[35]+data[36]+data[37]]); 
    end
    il faut 15mn
    quelle solution pour améliorer le temps autre qu'un retour à Batchmove ?

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    Tout le pb d'un load versus l'insert.....

    On suppose que ton fichier est trié ?
    Ta table comporte t'elle des FK ?

    eh puis tu effectues 34000 fois
    StrToDatetime(DateEdit1.Text),
    mais ça n'explique pas tout....

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Points : 35
    Points
    35
    Par défaut
    merci pour les pistes de recherche

    mon fichier est trié mais ma table n'a pas de FK

    j'ai sorti le StrToDateTime de la boucle
    mais ça ne change rien

  4. #4
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Bonsoir à tous,

    comme tu es dans un environnement Oracle, regarde du coté :
    - de SQL*Loader (cela est assez simple d'utilisation, et assez performant pour des chargements volumineux)
    - des tables externes (il me semble dispo à partir de la 9i)

    @

Discussions similaires

  1. [MySQL] Importer fichier excel dans une base de donne mysql
    Par arkhang dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/03/2014, 11h07
  2. [PHP 5.2] Importation fichier CSV dans une base de données
    Par gtraxx dans le forum Langage
    Réponses: 10
    Dernier message: 21/02/2010, 15h16
  3. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  4. [DDE]Import fichier .txt dans une base Access
    Par stoonman dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2007, 19h08
  5. Réponses: 3
    Dernier message: 13/12/2004, 13h54

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