iphone - sqlite3_step(statement)。返回100

标签 iphone sqlite

正在尝试访问sqlite数据库
sqlite3_step应该返回0?但事实并非如此!

if(sqlite3_open([DatabasePath UTF8String],&database)==SQLITE_OK){
    self.searchtext.text=DatabasePath ;

    const char *sql="select *from cars";
    sqlite3_stmt *selectstatment;


    if(sqlite3_prepare_v2(database,sql,-1,&selectstatment,Nil)==SQLITE_OK){
        self.searchtext.text=@" database prepared";

        while(sqlite3_step(selectstatment)==SQLITE_OK){
            // fetch the id
            SQLITETEST10000AppDelegate *carobject=[[SQLITETEST10000AppDelegate alloc] init ];
             carobject->primarykey=sqlite3_column_int(selectstatment, 0);
            //fetch the name
             carobject.carname =[NSString stringWithUTF8String:(char*)sqlite3_column_int(selectstatment, 1)];

            [appdelegate.Cars addObject:carobject];

            [carobject release];   
        }
    }else self.searchtext.text=@" database Not prepared";
}

最佳答案

您应该read the sqlite3 C API documentation (this page for sqlite3_step function)

sqlite3_step可以返回多个值,在一切正常的情况下,最常见的是SQLITE_ROW表示成功返回了一行,而SQLITE_DONE表示完成了对查询返回的所有行的迭代。 sqlite3_step从不返回SQLITE_OK

值100(请参见the result codes page in the doc too)与SQLITE_ROW相对应,因此这完全符合您的情况。

关于iphone - sqlite3_step(statement)。返回100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659256/

相关文章:

iphone - 向网格 tableView 添加覆盖层

iphone - 为客户使用 MDM 供应商签名 CSR

iphone - 如何设置显示数字的填充字符( objective-c )

java - Android SQLiteOpenHelper 的新实例是否会在应用程序目录中创建新数据库?

Android - SQLite 数据库是否存在?

iphone - Facebook 和 Twitter 与 iPhone 应用程序的集成无法在设备上运行

iphone - Objective-C 中的装饰器模式

python-3.x - 我想将 sqlite3 db 从内存复制到硬盘。我能怎么做?

用于提取 SQLite 表模式的 SQL 命令?

iphone - 如何在 iPhone 上将图像插入到 SQLite 中?