iPhone SDK的Sqlite3问题

时间:2011-02-21 18:51:52

标签: iphone sql objective-c cocoa-touch sqlite

我正在实现一些用于读取和编写sqlite3数据库的代码。 读取数据库工作正常,显示行根本不是问题。问题是插入一个新行。由于某种原因,它只是不起作用,sqlite在执行SQL后不会返回错误。

if( sqlite3_prepare_v2(db, "INSERT INTO `items` (`itemID`, `itemName`) VALUES (2, 'helloWorld?')", -1, &statement, NULL) != SQLITE_OK)
    {
        NSAssert1(0, @"Error, unable to modify database",sqlite3_errmsg(db));
    }

db and statement:

sqlite3 *db = [RootViewController newDatabaseConnection];
    sqlite3_stmt *statement = nil;

另外我知道有一个名为核心数据的框架,所以请不要回答使用核心数据

数据库文件“AppName.sqlite3”不在应用程序的主文件夹中,而是在文档文件夹中,因此可编辑

我的SQL语法没问题,尝试使用命令行添加项目。那里的一切都很好。

1 个答案:

答案 0 :(得分:1)

据我所知,准备一个声明实际上并没有执行它。您需要调用sqlite3_step()并传递预准备语句,以便执行SQL。

作为指南,您应该准备语句并逐步完成结果,然后在完成后完成语句。然后,当您完成数据库连接时,可以将其关闭。