Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite3在我的iphone应用程序中不起作用_Iphone_Objective C_Sqlite - Fatal编程技术网

sqlite3在我的iphone应用程序中不起作用

sqlite3在我的iphone应用程序中不起作用,iphone,objective-c,sqlite,Iphone,Objective C,Sqlite,我想在iphone应用程序中使用sqlite3。但它不起作用。场景是:-单击按钮事件时,应该运行一个方法并从数据库中检索数据。但我的节目顺序没有进入 if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { const char *sqlStatement = "select * from records"; sqlite3_stmt *compiledStatement; 0NSL

我想在iphone应用程序中使用sqlite3。但它不起作用。场景是:-单击按钮事件时,应该运行一个方法并从数据库中检索数据。但我的节目顺序没有进入

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
    const char *sqlStatement = "select * from records";
    sqlite3_stmt *compiledStatement;
    0NSLog(@"%s", sqlite3_errmsg(database)); // Results - no error
-
    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)    {
//here NSLog statement does not work.
打开数据库没有问题。原因应该是什么?任何值得注意的解决方案。
谢谢你试试这个:
NSLog(@“%s”,sqlite3_errmsg(数据库))并查看您的查询中是否有错误。

以下是我自己代码的修改示例:

  NSString *file = @"youdatabase.db"
  sqlite3 *db;    
  if(sqlite3_open([file UTF8String], &db) == SQLITE_OK)
  {
    NSString *req = @"SELECT * FROM totoTable";
    sqlite3_stmt *returnReq;

    if(sqlite3_prepare(db, [req cStringUsingEncoding:NSUTF8StringEncoding], -1, &returnReq, NULL) == SQLITE_OK)
    {
      while (sqlite3_step(returnReq) == SQLITE_ROW)
      {
         //Printf first returned value
        NSLog(@"%s", (char*)sqlite3_column_text(returnReq, 0));
      }     
    }
    sqlite3_close(db);
  }

希望它能帮助你;-)

没有错误。。。我编辑了我的问题,你可以有更好的理解。正如我从你的代码中看到的,你的if语句没有返回SQLITE_OK。我使用sqlite3并将其分为两个块,首先我做准备,不使用if,然后我使用
while(sqlite3\u步骤(compiledStatement)==SQLITE\u行)
循环遍历结果。试试看它是否有任何变化。@alis:您的NSLog放错地方了。您想查看来自prepare的错误消息是什么。把它放在if的else部分。是的,你需要在准备之后有NSLog,你不需要在if@Simon,@JeremyP:我按照你的指示做了,我得到了一个错误:没有这样的表:记录(我的表名)。但是我的数据库有一个名为records的表,它也不是空的。那么,这背后的原因是什么?