0

私はこのコードを使用していますが、「Error añadir contacto」は「Error adding the contact」と同じだといつも言っていますが、何が問題なのですか? 私のDBは:

CREATE TABLE IF NOT EXISTS Contacto (id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, direccion TEXT, telefono TEXT)

私のコードは次のとおりです。

-(IBAction)addContacto
{
    const char *dbpath = [_rutaDB UTF8String];
    sqlite3_stmt *statement;
    if (sqlite3_open(dbpath, &_db) == SQLITE_OK)
    {
        NSString *consulta = [NSString stringWithFormat:@"INSERT INTO Contacto (nombre, direccion, telefono) VALUES (\"%@\",\"%@\",\"%@\")",_nomb.text,_dir.text,_tlf.text];
        const char *insert_stmt = [consulta UTF8String];
        sqlite3_prepare_v2(_db, insert_stmt, -1, &statement, NULL);
        if (sqlite3_step(statement) == SQLITE_DONE)
        {
            _status.text = @"Contacto añadido.";
            _status.textColor = [UIColor greenColor];
            sqlite3_finalize(statement);
        }
        else
        {
            _status.text = @"Error añadir contacto.";
            _status.textColor = [UIColor redColor];
        }
        sqlite3_finalize(statement);
        sqlite3_close(_db);
    }
}

ご協力いただきありがとうございます。

PD: 作成されたテーブルは問題ありません。デフォルトのエントリを挿入して動作します:

                const char *sql_insert = "INSERT INTO Contacto (nombre, direccion, telefono) VALUES ('Pepe', 'Avila 34', '928776622')";
            sqlite3_exec(_db,sql_insert, NULL, NULL, &errMsg);

DB作成時のみ実行。

再度、感謝します。

4

0 に答える 0