J'ai une application iphone qui utilise une base de données SQLite, tout fonctionne et je peux enregistrer la base de données dans le fichier et le charger lorsque l'application est rechargée. Mais le problème que je suis est que je ne sais pas comment je peux effacer la base de données et recommencer à zéro. J'ai essayé de supprimer le fichier de base de données, ce qui entraînera le démarrage d'une nouvelle base de données à partir de zéro au prochain redémarrage de l'application, mais je voudrais savoir comment ne pas supprimer le fichier de base de données mais aussi effacer Il manque de mémoire tous ensemble et démarrer une nouvelle base de données sans avoir besoin de redémarrer l'application.iphone - comment effacer la base de données SQLite?
2
A
Répondre
1
Votre requête SQLite devrait être quelque chose comme ceci:
DELETE * from [table name]
... et vous répéter que pour chaque table dans la base de données.
0
Alors, vous souhaitez supprimer tous les fichiers * .sqlite? Il n'y a aucun moyen d'éviter la boucle, mais vous pouvez le limiter en utilisant un prédicat pour filtrer les fichiers non-SQL d'abord et assurer des performances rapides en utilisant l'énumération rapide. Voici une méthode pour le faire:
-(void) removeAllSQLiteFiles
{
NSFileManager *manager = [NSFileManager defaultManager];
// the preferred way to get the apps documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// grab all the files in the documents dir
NSArray *allFiles = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];
// filter the array for only sqlite files
NSPredicate *fltr = [NSPredicate predicateWithFormat:@"self ENDSWITH '.sqlite'"];
NSArray *sqliteFiles = [allFiles filteredArrayUsingPredicate:fltr];
// use fast enumeration to iterate the array and delete the files
for (NSString *sqliteFile in sqliteFiles)
{
NSError *error = nil;
[manager removeItemAtPath:[documentsDirectory stringByAppendingPathComponent:sqliteFile] error:&error]
NSAssert(!error, @"Assertion: SQLite file deletion shall never throw an error.");
}
}
Questions connexes
- 1. iPhone - Base de données SQLite Lecture
- 2. Impossible d'ouvrir la base de données SQLITE iPhone
- 3. Comment lire les données de la base de données SQLite?
- 4. base de données SQLite
- 5. Comment insérer plusieurs lignes de données dans la base de données sqlite par programmation iphone
- 6. Configuration de la base de données sqlite
- 7. Comment afficher la base de données sqlite par bouton presse
- 8. Données de base (SQLite/iPhone) - considérations de conception?
- 9. Comment envoyer une base de données sqlite sqlite à partir d'un iphone?
- 10. Copie de la base de données SQLite
- 11. iPhone Base de données SQLite Lecture et écriture
- 12. Base de données iPhone Web App SQLite et MySQL
- 13. Base de données Android-SQLite
- 14. Chargement de la base de données iPhone
- 15. comment obtenir la valeur de champs de base de données de la base de données sqlite?
- 16. iPhone et SQLite: comment gérer la connexion à la base de données avec plusieurs classes?
- 17. Base de données Android SQLite
- 18. Comment s'approcher de la base de données sqlite du calendrier iphone
- 19. comment télécharger la mise à jour de l'application iPhone pour remplacer l'ancienne base de données SQLite
- 20. Requête de données de base pour iPhone
- 21. Insertion de valeurs nulles dans la base de données Sqlite?
- 22. Récupération de la base de données de MySQL vers SQLite
- 23. Conception de base de données sqlite idéale
- 24. Comment trouver la taille d'une base de données SQLite dans une application iPhone?
- 25. Comment utiliser la base de données SQLite dans JME?
- 26. Comment fermer et rouvrir la base de données Sqlite?
- 27. Comment faire AUTO_INCREMENT sur la base de données Android SQLite?
- 28. problème dans la base de données sqlite, aide!
- 29. iphone sdk: Ajouter des données à la base de données sqlite ne fonctionne pas?
- 30. iPhone - Lire le mot de passe de la base de données SQLite cryptée