2009-08-08 9 views
1

Je suis en train d'insérer 1916 enregistrements dans la base de données SQLite dans l'iPhone, mais après avoir inséré 246 disques que je reçois une erreurrequête d'insertion SQLite donnant erreur après 246 dossiers

« Mettre fin app en raison d'une exception non interceptée « NSInternalInconsistencyException » , raison: 'Erreur lors de l'insertion de données.' impossible d'ouvrir le fichier de base de données '' "

Y a-t-il un paramètre concernant le cache d'insertion ou autre chose?

Répondre

0

Il pourrait y avoir une contrainte de limite de mémoire, vous voudrez peut-être exécuter ceci est un couple de transactions, disons insérer 245 enregistrements à la fois puis les 245 suivants jusqu'à ce que vous avez terminé.

Quelques détails seraient aider aussi bien, comme la requête, la version SQLite, la quantité de données est passé dans chaque champ, la structure de la table, les contraintes, etc ...

0

Pour que beaucoup INSERTs, vous aurez voulez envelopper votre opération d'écriture dans une transaction. J'ai constaté que faire autrement peut causer l'utilisation de la mémoire sur l'appareil et conduire à une mauvaise performance globale. J'ai fourni du code dans this answer comme un exemple de la façon de le faire.