SQLite est une très bonne base de de données, mais comme on peut le constater les opération en UPDATE sont très longues.
Dans mon TreeNote 2 version SQL (en cours de développement), je met à jour tous les niveaux de l'arbre à chaque déplacement.
J'ai constaté plusieurs secondes pour mettre à jour simplement une dizaines d'enregistrements (inutilisable)
Voici une solution trouvée sur StackOverflow
http://stackoverflow.com/questions/3820 ... low-update
Il faut envoyer ces deux directives
Code : Tout sélectionner
PRAGMA synchronize = OFF;
PRAGMA journal_mode = MEMORY;
donc si vous avez une succession de requêtes en UPDATE, passez avant les updates, une première requête pragma.
Code : Tout sélectionner
DatabaseUpdate(#DB, "PRAGMA synchronize = OFF; PRAGMA journal_mode = MEMORY;")
; Puis les requêtes en update
ForEach ...
DatabaseUpdate(#DB, "UPDATE ...
Next
Hope this help
Cela dit, je n'ai pas fait l'essai de compiler toutes mes requêtes en une seule puis de l'envoyer.
Je créé toutes les requêtes dynamiquement et les envoient une par une,
c'est peut être là une mauvaise méthode ?
PS.
À propos de l'excellente méthode des requêtes préparées: est il possible de faire afficher (pour debug) le contenu de chaque variable adresse ' ? ' pour SQLite ou $1 pour PostgreSQL ?
(raison: je passe ma requête en paramètre à une procédure et j'aimerais voir ce qui est généré avant de l'exécuter)