これはmysql_num_rowsのおかげでmysqlでは些細なことですが、sqlite3にはこれと同等のものはありません。したがって、問題は、現在の行が最後の行かどうかを知る方法です。SQLite3 - 現在の行が最後の行かどうかを知る方法
次のような並べ替えは、sqlite3_stepが有効でない場合、以前のバインディングと同様に役立ちません。
sqlite3_prepare_v2()
int fetched = 0;
int last = 0;
while (sqlite3_step(statement) == SQLITE_ROW) {
// this is the previous row
if(fetched) {
process(data, last);
}
fetched = 1;
data = sqlite3_column_text();
}
last = 1;
if(fetched)
process(data, last);
クエリを2回実行することは簡単な解決策ですが、それは私が探しているものではありません。
アイデア?前もって感謝します。
'WITHOUT ROWID'節を使用してテーブルを作成しなかった場合、' SELECT Max(ROWID)AS LastRow'はあなたに最後に作成された行を与えます。 'AS LastRow'はオプションです。 –