2009-07-16 29 views
2

iPhone SDKに「エラーではありません」というエラーが表示されました。 SQLiteのバージョン3.4.0iPhone SDKのsqlite3エラー「エラーではありません」

sqlite3_step(compiledStatement) 

私はクエリで使用しているテーブルは、1つだけの行があります。それは100 ..を返す?

sqlite3_errmsg(database) 

この行から上記のエラーが表示されます。

データベースとテーブルをターミナルコマンドで作成し、アプリケーションリソースフォルダとドキュメントパスに配置しました。これは動的に実行されます。

while(sqlite3_step(compiledStatement) == SQLITE_ROW) 

このループはコード内で実行されません。その内部ではすべての値が取得されます。

この情報は十分だと思います。 誰かがどこに問題があるのか​​知っています.. ..?

ありがとうございました

答えて

1

私が思っている問題は、sqlite3_stepがコンパイルされたステートメントから値を返すことを期待していることです。それはしない、エラーコードを返します。この場合は100(SQLITE_ROW)です。つまり、クエリが成功し、より多くのデータがある可能性があるので、このステップからデータを取得するとsqlite3_stepを呼び出す必要があります。クエリ。

実際に返されるクエリステップのデータを表示するには、さまざまなsqlite3_column APIを使用して、ステップからデータを抽出する必要があります。

+0

私はすでに、このメソッドでwhileループが機能しなかったので、sqlite3_step()を使用して戻り値(100)を見つけました。私が持っていたのは1つの行だけでしたが、ループは決して実行されませんでした。 \ m/ これで、 'NSString stringWithUTF8String'を使用した場合でも、文字エンコーディングはsqlite3_column_textでは判読できないものになりました。これは2つの行のsqlite3_reset()で正常に動作しています。ありがとう – pMan

+0

こんにちは、私はあなたの更新コードを表示することができますので、この問題を解決することができますか? –

3

実際にはとても簡単です。 documentation of sqlite3_stepをご覧ください。基本的にSQLITE_ROWは、が正常に終了したことを伝え、sqlite3_stepを再度呼び出して別の行を取得できることを伝えます。最後の行は、SQLITE_DONEです。これは、「エラーではありません」と解釈されます。

関連する問題