-1
這在mysql中很簡單,這要歸功於mysql_num_rows,但在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);
執行查詢兩次(一個計數)是一個微不足道的解決方案,但這不是我正在尋找的。
任何想法?提前致謝。
如果您沒有使用'WITHOUT ROWID'子句創建表,'SELECT Max(ROWID)AS LastRow'應該爲您提供最後創建的行。 AS LastRow是可選的。 –