2009-12-24 8 views
1

Je suis noob ici mais, pourquoi est-ce que je reçois cette erreur?SQLite 'aucune telle table' erreur

J'ai une table nommée Team dans un SQLite appelé Team.sqlite! Y a-t-il autre chose que je dois fournir?

 
ERROR 
--------------- 
2009-12-23 23:17:05.277 PitScout[6690:207] *** Assertion failure in -[Team addTeam], /Users/******/Desktop/PitScout/Classes/Team.m:90 
2009-12-23 23:17:05.280 PitScout[6690:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error while creating add statement. 'no such table: Team'' 
2009-12-23 23:17:05.280 PitScout[6690:207] Stack: (
    30131291, 
    2502464777, 
    30215227, 
    810772, 
    16329, 
    12146, 
    20588, 
    2753625, 
    4667381, 
    2753625, 
    3160994, 
    3169731, 
    3164943, 
    2858547, 
    2766876, 
    2793653, 
    37420753, 
    29916032, 
    29912136, 
    37414797, 
    37414994, 
    2797571, 
    10780, 
    10634 
) 
+0

Pour répondre à cette question, nous aurons besoin de savoir comment vous ouvrez la base de données et comment vous interrogez la base de données, à tout le moins. Utilisez-vous des données de base? – outis

+2

essayez d'ouvrir votre base de données avec un gestionnaire, par exemple Plugin SQLite Manger pour Firefox, ou autre smth. Là, vous pouvez entrer votre requête. Si votre requête fonctionne, elle fonctionnera également dans votre application. – Morion

Répondre

3
  1. Utilisez CoreData. L'utilisation directe de SQLite est plus difficile, nécessite plus de code, et est une perte de temps à moins que vous ayez des besoins très spécifiques.

  2. Vous dites:

J'ai une table nommée équipe dans un SQLite appelé Team.sqlite! Y at-il autre chose que je dois fournir?

Cela n'a aucun sens. Voulez-vous dire que vous avez une base de données nommée "Team.sqlite"? Ou avez-vous une table nommée "Team.sqlite"? Une table nommée "Team.sqlite" n'est pas la même chose qu'une table nommée "Team".

Comment créez-vous la table? C'est à dire. Quelle est la déclaration CREATE TABLE que vous utilisez?

+0

Eh bien, j'ai décidé que Core Data était beaucoup plus difficile pour moi, un simple débutant, et j'ai un fichier nommé Team.sqlite, et une table nommée Team. ! –

+1

Il pourrait y avoir une courbe d'apprentissage un peu plus raide pour les données de base, mais donnez-lui une chance, surtout si votre projet est pour l'expérience d'apprentissage. Une fois que vous aurez appris à utiliser les données de base, cela facilitera la programmation. Mieux vaut apprendre à le faire dès le départ, puis apprendre une nouvelle manière et désapprendre les mauvaises habitudes de l'ancien. – outis

1

Remarque: J'ai redémarré mon projet à partir de zéro et c'est corrigé maintenant. Il s'est avéré être un problème avec mes instructions SQL. Merci tout le monde!

EDIT: Le correctif a été au sujet de mes instructions SQL: j'appelle à une table qui existent, mais j'utilisé:

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"SQLITE.sqlite"]; 

au lieu de:

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Team.sqlite"]; 

qui a été effectivement causé par une de mes versions antérieures de l'application.

Mon équipe.m était parfaitement bien, cependant. C'était en fait dans mon SQLAppDelegate.m.

+3

Un heads up: SO est un site Q & A, pas un forum. Votre message ici est marginalement une réponse à votre question. Pour en faire une réponse complète, veuillez éditer cette réponse et expliquer les déclarations corrigées et éditer votre question pour ajouter les déclarations brisées afin que d'autres puissent apprendre de votre problème. Pour les questions futures, assurez-vous que vos réponses répondent vraiment à la question. Vous pouvez poster des commentaires plus généraux (et des questions pour des réponses spécifiques) comme commentaires lorsque vous obtenez 50 points (vous pouvez toujours poster des commentaires sur vos propres questions). – outis