C'est la première fois que j'utilise SQL, et je pensais avoir tout fait correctement, mais je reçois toujours l'erreur que ma table n'existe pas. Pour créer la table, je l'ai fait:Erreur lors de l'écriture dans la base de données SQLite
CREATE TABLE "Users" ("UserID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "UserName" VARCHAR, "Password" VARCHAR)
J'ai une table utilisateur nommé
Pour écrire à la table, je vous appelle ceci:
- (void) addUser {
if(addStmt == nil) {
const char *sql = "insert into Users(UserName, Password) values (?, ?)";
if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database));
}
sqlite3_bind_text(addStmt, 1, [userName UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 2, [password UTF8String], -1, SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));
else
//SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid
userID = sqlite3_last_insert_rowid(database);
//Reset the add statement.
sqlite3_reset(addStmt);
}
Quand je déclenche cela, il ferme l'application et me donne l'erreur Error while creating add statement. 'no such table: Users'
Il m'a fallu des jours pour aller aussi loin, et je n'ai aucune idée d'où le prendre à partir d'ici. Que puis-je faire pour résoudre ce problème?
Edit: Voici comment j'importer mon DB dans mon fichier AppDelegate
- (NSString *) getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"UserDatabase.sqlite"];
}
Cela semble fonctionner. J'ai eu ce problème plusieurs fois lors de l'ouverture d'autres fichiers. Si je mets le fichier SQL sur un serveur, est-ce que je le ferais de la même manière? Ou devrais-je impliquer FTP? – Chris