J'ai fait quelques recherches et aussi lu la FAQ sur le site SQLite, pas de chance de trouver une réponse à ma question.SQLite prend-il en charge les transactions sur plusieurs bases de données?
Il se peut très bien que mon approche de base de données soit défectueuse, mais pour l'instant, je voudrais stocker mes données dans plusieurs bases de données SQLite3, ce qui signifie des fichiers séparés. Je suis très préoccupé par la corruption de données due à l'écrasement de mon application, ou à une panne de courant au milieu de la modification des données dans mes tables.
Afin d'assurer l'intégrité des données, je dois essentiellement à faire:
begin transaction modifier la table (s) dans la base de données # 1 modifier la table (s) dans la base de données # 2 validée ou annulée si erreur
Est-ce que cela est pris en charge par SQLite? En outre, j'utilise sqlite.net, en particulier le dernier qui est basé sur SQLite 3.6.23.1.
MISE À JOUR
Une question - est-ce quelque chose des gens en général ajouter à leurs tests unitaires? J'ai toujours testé des bases de données, mais je n'ai jamais eu de cas comme celui-ci. Et si oui, comment le feriez-vous? C'est presque comme si vous deviez passer un autre paramètre à la méthode comme bool test_transaction, et si c'est vrai, lancer une exception entre les accès à la base de données. Ensuite, testez après l'appel pour vous assurer que le premier ensemble de données ne l'a pas fait dans l'autre base de données. Mais peut-être est-ce quelque chose qui est couvert par les tests SQLite, et devrait pas apparaître dans mes cas de test.
Je ne pense pas que vous voulez ajouter à des tests unitaires. C'est comme si les transactions fonctionnent bien, il est inutile de les tester encore et encore. Faites juste quelques tests initiaux pour vous assurer que les insertions, les mises à jour, les rollbacks etc sont corrects et que vous êtes prêt à partir. –
ok, je pensais que ce serait mieux. parfait! – Dave