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 :

Record et Access


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Points : 69
    Points
    69
    Par défaut Record et Access
    Bonjour,

    J'ai une BD Access et je dois insérer des records (12'000) dans une table de 6 colonnes. (lenteur)

    Je voudrais accélérer cette insertion. Quelle autre méthode utiliseriez-vous à la place de record ?

    Merci a+

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Ces 12k records viennent d'où ?
    D'une autre base de données ? D'un fichier texte ? de l'espace ? (je l'avais pas déjà faites celle la sur ton autre poste ? )
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Points : 69
    Points
    69
    Par défaut
    D'une TList structurée

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Technique à tester mais qui peut être un peu plus rapide (pas sûr )

    1- Faire une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select [liste des champs nécessaires pur l'insertion] from [La Table]
    Where [L'index] = [une valeur qui renvoi 0 enregistrement]
    2- Insérer les données dans cette requete avec des posts

    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
     
    With AdoQuery do
    begin
      Connection.BeginTrans;
      try
        Append;
        for i := 0 to Malist.count -1 do
        begin
          FieldByName().asString := Malist.Strings[i]; // exemple a toi de mettre tes champs
          try
            Post;
          Except on E:Exception do
            // ce que tu veux pour gérer celui qui passe pas
          end;
        end;
        Connection.CommitTrans;
      Except on E:Exception do
        Connection.RollBackTrans;
      end;
    end;
    end;
    Pour ma part avec cette technique pour transférer des données d'une base de données
    Nombre d'enregistrements : 49 000
    Nombre de champs : 28
    Origine : Base MySQL sur un serveur Internet
    Destination : mon poste, base MySQL
    Temps : 3mn 23s
    Enr./s : 245
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Je ne connais plus bien acces mais sur la plupart des bases il est utile pour les traitements de masse de désactivé ou de supprimer les index da la tables ds laquelle tu veux insérer pour les réactver ou recréer après traitement.
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Points : 69
    Points
    69
    Par défaut
    Au point 1 je dois faire un Close, mettre les params puis Open ?

    Parce que lorsque j'arrive à Append ca se plante.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Vodkha
    Au point 1 je dois faire un Close, mettre les params puis Open ?

    Parce que lorsque j'arrive à Append ca se plante.

    Oui, il faut que la source de données soit ouverte.
    Attention la requete doit être monoTable, ca ne fonctionne pas avec du multitable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With MaRequete do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select ...');
      Open;
    end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. Ouvrir un formulaire Access 2007 sur un record spécifique
    Par houleyh dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/09/2013, 12h08
  2. Réponses: 2
    Dernier message: 08/08/2007, 15h42
  3. vidange d'une DB de +- 30.000 records en ACCESS
    Par thierry007 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/04/2007, 08h58
  4. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  5. Réponses: 3
    Dernier message: 22/05/2002, 09h37

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