2009-02-26 10 views
1

結果をループするのを止める前に、sqliteクエリが何かを返すかどうかを確認するにはどうすればよいですか。sqliteクエリの結果を確認する

//see if there are results and do something if not 
while(sqlite3_step(selectstmt) == SQLITE_ROW) 
{ /*process on reults */} 

答えて

2

SQLITE_ROWを返すと、読み込みの準備ができています。

APIは、あなたが列関数を通じてそのデータにアクセスすることができhttp://www.sqlite.org/capi3ref.html#sqlite3_step

である:

http://www.sqlite.org/capi3ref.html#sqlite3_column_blob

sqlite3_step戻りSQLITE_ROWは、あなたはまだデータを持っていながら、だから、基本的には、正しいことをやっていますアクセスするために。

//明確化

SQLiteはフェッチと全体の結果セットを取得しません、それを呼び出し、sqlite3_stepを使用することによってあなたの時間に1つずつ行を提供します。したがって、データを取得するかどうかは、ステップを呼び出すまでわかりません。

私は組み込みデバイスで作業していましたが、常にまともなDALを通してSQLiteを使用しなければなりませんでした。私はそれがAPIの巨大なファンではないが、それは私が推測する軽量です。

+0

ありがとうございました。私はクエリを実行するsqlite3_step(selectstmt)を呼び出すと思った。私は二度実行したくありません。一度SQLite_ROWを確認し、もう1つは結果をループします。または、結果を保持する/キャッシュする配列を作成しないで唯一の方法ですか? – 4thSpace

+0

私はそこで少し明確にしようとしました。 –

関連する問題