Запись в базу данных SQLite Цель C Iphone SDK - PullRequest
0 голосов
/ 14 июня 2011

Мне нужна помощь для записи новых записей в базу данных SQLite с помощью Objective C и iPhone SDK.

Операции открытия / закрытия / чтения базы данных идут хорошо, но я не могу понять, почему этот бит кода не работает.

-(void) testWriteToDatabase{

NSLog(@"instructions sent 3");
    sqlite3 *database;
    sqlite3_stmt *compiledStatement;
const char *insertSql="INSERT INTO data (name,pass,email) VALUES(?,?,?)";

NSString *userRegistered=userRegister.text;
NSLog(@"user %@",userRegistered);
NSString *passRegistered=passRegister.text;
NSLog(@"pass %@",passRegistered);
NSString *emailRegistered=emailRegister.text;
NSLog(@"email %@",emailRegistered);
sqlite3_stmt *insertStmt = nil;



if(sqlite3_open([databasePath UTF8String],&database) == SQLITE_OK) {

    if(sqlite3_prepare_v2(database, insertSql, -1, &insertStmt, NULL) == SQLITE_OK){

NSLog(@"instructions sent 4");
sqlite3_bind_text(insertStmt, 1, [userRegistered UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(insertStmt, 2, [passRegistered UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(insertStmt, 3, [emailRegistered UTF8String], -1, SQLITE_TRANSIENT);
            NSLog(@"instructions sent 5");
        while (sqlite3_step(compiledStatement) == SQLITE_ROW) {


        }

     }
sqlite3_reset(insertStmt);    
    }
sqlite3_close(database);    
}

Честно говоря, я никогда раньше не использовал SQLite, но главная проблема в том, что он не добавляет записи в базу данных «данные», как я этого хочу. Помощь будет принята с благодарностью, ура.

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Не должно

while (sqlite3_step(compiledStatement) == SQLITE_ROW) {
}

быть

while (sqlite3_step(insertStmt) == SQLITE_ROW) {
}

как вы использовали insertStmt везде. compiledStatement не определено, как я понимаю ваш код.

0 голосов
/ 14 июня 2011

Есть ли в базе данных таблица с именем "data"? Тривиальная вещь, но все же. Кроме того, проверьте, что sqlite3_step возвращает на каждом шаге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...