2011-09-13 19 views
0

奇妙な問題誰でも解決してください。sqlite3 - whileループは実行されません

ループが実行されていませんが、私のデータベースコードを読み込み中です。ここで

は、whileループを実行していないされてないことを除いて、すべてが正常に動作します私のコード上記のコードで

NSString * [email protected]"select usernote from savenote where recipename like ? "; 

      const char * sqlStatement=[query UTF8String]; 

      sqlite3_stmt *compiledStatement; 

      sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 

      if (sqlite3_prepare_v2 (database, sqlStatement,-1,&compiledStatement,NULL)==SQLITE_OK) 
      { 
       sqlite3_bind_text(compiledStatement,1,[selString UTF8String],-1,SQLITE_STATIC); 
       NSLog(@"selected:%@",selString); 


       while (sqlite3_step(compiledStatement)== SQLITE_ROW) 
       { 


        NSString * notz=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)]; 
        [Notes addObject:notz]; 

        NSLog(@"n:%@",Notes); 
        txt.text=[Notes objectAtIndex:0]; 

       } 

      } 
     } 

です。

私の記事をお読みいただきありがとうございます。

+0

あなたのコードをステップ実行するために、デバッガを使用してみました、のように見えるだろうか?おそらく、* while *ループが含まれている* if *ステートメントはtrueに評価されることはありません。そうでない場合は、* sqlite3_prepare_v2()*の呼び出しが失敗している可能性があります... –

答えて

0

私は問題がクエリにあると思います。 like句にシングルクォート')を追加します。

"select usernote from savenote where recipename like '?'"; 
0

あなたはthis link

に従うことができますあなたのケースでは、コードは

const char * sqlStatement = "select usernote from savenote where recipename like ?001 "; 

sqlite3_bind_text(compiledStatement,1,[selString UTF8String],-1,SQLITE_TRANSIENT); 
関連する問題