SQLite for Excel : insertion multiple
Bonjour,
tout d'abord pour situer le contexte , j'utilise l'API / framework (je ne sais pas trop comment le définir) SQLite for Excel disponible ici:
https://sqliteforexcel.codeplex.com/
je possède une fonction
sub requete (req as String)
qui exécute la requête passer en paramètre . Cette fonction est parfaitement fonctionnel testée et vérifiée.
Je Cherche à faire une grande quantité d'enregistrement d'un coup , pour cela j'ai utilisé deux méthodes :
1) je génére ma requête pour 1 enregistrement ,
reqSql = " INSERT INTO " & nomTable & "VALUES ( '" & val1 & "' , '" & val2 & " ' ) "
requete reqSql
et je boucle la dessus . Je reussi donc à importer l'ensemble de mes données , mais comme elles sont volumineuses, cela prend du temps
mon problème apparait sur la deuxième méthode :
If NoLig Mod var = 0 Or NoLig = FinLigne - 3 Then
reqSql = reqSql & "('" & val1 & "','" & val2 & "')"
db.requete reqSql
db.closeDB
reqSql = "INSERT INTO " & nomTable & " (champs1 , champs2 ) VALUES "
Else
reqSql = reqSql & "('" & val1 & "','" & val2 & "'),"
End If
et je boucle la dessus .
de temps en temps , a priori toujours au mêmes endroits , la deuxième méthode échoue pour certain enregistrement
constat : plus var est grand plus la requête échoue souvent .
Mais ce n'est pas forcement vrai.
Exemple :
var = 500 ==> 2 plantages sur 19000 lignes vers le début = 18000 enregistrements réussis
var = 2 ==> aucun plantage
var = 2000 ==>plante à chaque fois = 0 enregistrement réussis
au niveau temps d’exécution , temps_exécution_optimisé = temps_exécution/var avec temps_exécution = 7~10 mn
d'où l'importance du fonctionnement de la 2 ème méthode.
J'espère avoir réussi a exprimer mon problème clairement
En vous remerciant d'avance pour vos réponses .
Cordialement.
Re Bonjour,
Petite Update de mon problème , je peux maintenant importer 400 enregistrement d'un coup sans que cela bug ...
avec 800 aucun ne fonctionne . Problème mémoire ?
Les corrections suivantes ont été apportées sur les données en entré : j'ai suppressions des doublons sur la clé primaire . Il n'était pas sensé existé . Mais cela n'a pas suffit . J'ai aussi supprimé tous les " ' " des données en entré . étonnant vu que cela ai corrigé une partie du problème vu que un par un les enregistrements fonctionnaient .
avez vous des informations sur comment excel gère l'allocation mémoire de ses variables ?
Bonne journée
Bonjour kils44!
Je début avec SQLite for Excel (https://sqliteforexcel.codeplex.com)
et mes connaissance avec VBA, reste appréciable mais limite.
mon projet de travailler avec une base SQLite (de généalogie) et faire mes calcul ou correction avec Excel...
et je lute depuis deux semaines...
je comprend pas on récupère une table dans un onglet et pour le renvoyer c'est pas mieux....
pourrais tu m'aider
Merci par avance
Jorge