int sqlite3_backup_step( sqlite3_backup* backup, int pages );
backup
An online backup handle.
pages
The number of pages to copy. If this value is negative, all remaining pages are copied.
An SQLite result code. SQLITE_OK
indicates the
pages were successfully copied, but more pages remain. SQLITE_DONE
indicates
that a complete backup was made. If sqlite3_
backup_
step()
returns SQLITE_BUSY
or SQLITE_LOCKED
, the function can be
safely retried at a later time.
This function attempts to copy the specified number of pages
from the source database to the destination database. A shared
read lock is obtained and then released on the source database
for each call to sqlite3_backup_step()
. Larger page counts
finish the backup more quickly, while smaller page counts allow
more concurrent access.
Modifications made to the source database through the same database connection that is being used for the backup are automatically reflected into the destination database, allowing the online backup to continue.
Modifications made to the source database through any other
database connection will cause the backup to reset and start
over. This is transparent. If an application is attempting to
back up a highly dynamic database it should call sqlite3_backup_step()
very
frequently and use a very large page count, or it risks
continual reset. This could result in the backup perpetually
failing to complete.