1

私は iPhone プログラミングに不慣れで、数日間修正しようとしていた問題を誰かが助けてくれることを望んでいました。データベースとテーブルを作成しました。私のプログラムでは、5 つのフィールドが含まれており、2 つのフィールドをゼロに設定しています。そして後で、目的のためにこれらのフィールドを 1 つに更新しています。しかし問題は、フィールド値を 1 に設定できないことです。以下のコードを貼り付けます。

NSString *querySQL = [NSString stringWithFormat: @"UPDATE TODOLIST_03 SET DELETEROW ='1' WHERE TASK=\"%@\"", cellText1];

const char *query_stmt = [querySQL UTF8String];

if (sqlite3_prepare_v2(TODOLIST_03_DB, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{   
    if (sqlite3_step(statement) == SQLITE_ROW)
    {
        .........   
    }
}

クエリのエラーを教えてください。

4

2 に答える 2

0

データベースファイルをどのパスに配置しましたか?データベースファイルをプロジェクトと同じパスに配置すると、書き込みできません。たとえばNSHomeDocument、書き込み可能なサンドボックスに配置する必要があります。次のようにコードを変更して、エラーを追跡できます。

NSError *err;

if (sqlite3_prepare_v2(TODOLIST_03_DB, query_stmt, -1, &statement, &err) == SQLITE_OK)
{   
    if(err)
    {
        // NSLog error or what.
    }
}
于 2012-09-11T07:38:38.143 に答える
0

以下を試してください:

const char *sqlQuery="UPDATE TODOLIST_03 SET DELETEROW ='1' WHERE TASK= ?";

if(sqlite3_prepare_v2(database, sqlQuery,-1, &queryStatement, NULL) == SQLITE_OK)
{   
    sqlite3_bind_text(queryStatement, 1, [cellText UTF8String], -1, NULL);     
}
于 2012-09-11T07:35:11.730 に答える