0

正常に作成されたdb.dbにデータを挿入しようとしていますが、データベースにデータが挿入されません。ただし、エラーが表示された後、データはinsertsqlに正常に送信されます。コードを確認してください。

-(void)insertDB
{
NSString *dname=[[NSString alloc]init];
dname=[delegate.Name objectAtIndex:0];

sqlite3_stmt *statement;
const char *dbpath=[delegate.databasepath UTF8String];

if (sqlite3_open(dbpath, &contactDB)==SQLITE_OK)
{

    NSString *insertSQL=[NSString stringWithFormat:@"INSERT INTO STABLE (NAME) VALUES (\"%@\")",dname];

    //insert sql is ok,after that they shows error

    const char *insert_stmt=[insertSQL UTF8String];

    NSLog(@"const char%@",insert_stmt);

    sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement,NULL);

    if (sqlite3_step(statement)==SQLITE_DONE)
    {

        NSLog(@"saved");
        UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"data" message:@"saved" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];

        [self counting];
    }
    else
    {
        NSLog(@"Failed to add new favourites");
        NSLog(@"Failed to update row %s", sqlite3_errmsg(contactDB));
    }
    sqlite3_finalize(statement);
    sqlite3_close(contactDB);
}
[self loadmusic];

}

4

1 に答える 1

1

返されるエラーメッセージは次のとおりです。

そのようなテーブルがない行の更新に失敗しました:STABLE

そして、まあ、問題はまさにそれです:と呼ばれるテーブルがありませんSTABLE。明らかにデータベースに接続できましたが、期待する名前のテーブルがありません。

本当の問題は、いつどのようにテーブルを作成したかです。接続しているデータベースが、使用されていると思われるデータベースではない可能性があります。

于 2012-11-12T18:24:04.497 に答える