2010-05-12 12 views
2

Je n'arrive pas à comprendre comment créer une commande SQL batch dire dans une liste et la transmettre à sqlite pour l'exécuter dans une transaction.Générer des commandes pour une transaction SQL avec Tcl et sqlite

En fait ce que je fais est maintenant:

sqlite3 db1 $dbFile 
db1 eval BEGIN 
foreach Key [array names myArray] { 
    db1 eval {SQL statement involving $Key} 
} 
db1 eval COMMIT 

Je pensais à un moyen pour générer une liste avec INSERTs et passer ensuite à transaction DB1 ou DB1 eval, mais cela ne semble fonctionner pour moi. Peut-être que je fais juste quelques erreurs de syntaxe stupide. Quelqu'un a un exemple de travail?

Merci!

Répondre

6

J'avais raison à propos de "stupide erreur". +1:

db1 transaction { 
    foreach Key [array names myArray] { 
     db1 eval {SQL statement involving $Key} 
    } 
} 
+0

+1: C'est la manière correcte d'effectuer une transaction qui traite une instruction SQL pour chaque élément d'un tableau. –