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+
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+
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 :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Technique à tester mais qui peut être un peu plus rapide (pas sûr )
1- Faire une requete
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 Select [liste des champs nécessaires pur l'insertion] from [La Table] Where [L'index] = [une valeur qui renvoi 0 enregistrement]
Pour ma part avec cette technique pour transférer des données d'une base de données
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;
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 :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
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
Au point 1 je dois faire un Close, mettre les params puis Open ?
Parce que lorsque j'arrive à Append ca se plante.
Envoyé par Vodkha
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 :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager