On Nov 7, 2011, at 10:29:25, Richard Hipp wrote:
> So I think what you need to do is to first "PRAGMA page_size" on the
> read-only disk database to find out what the page size is there. Then
> "PRAGMA page_size=N" (substituting an appropriate N) as the very first
> thing you do on the in-memory database. Then the backup should just work.
Thank you both for the quick responses. I believe I've added what you've
described, yet it still gives me SQLITE_READONLY when I copy it. I'll break the
code out into a somewhat linear code flow. We have some C++ classes that handle
database and statement paradigms. See if this looks correct.
// Open the file-based db as readonly:
const int flags = SQLITE_OPEN_READONLY;
const int result = sqlite3_open_v2(filepath, &m_dbh, flags, NULL);
if(result == SQLITE_OK)
sqlite3_extended_result_codes(m_dbh, 1);
// Get its page size:
int pageSize = 0;
SqliteStatement cmd("PRAGMA page_size", *this);
cmd.Step();
cmd.GetColumnInt(0, pageSize);
// Create mem-based db:
const int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
const int result = sqlite3_open_v2(filepath, &m_dbh, flags, NULL);
if(result == SQLITE_OK) {
// Set its page size:
if(pageSize > 0) {
SqliteStatement cmd("PRAGMA page_size = ?", *this);
cmd.BindToInt(1, syz);
cmd.Step();
}
sqlite3_extended_result_codes(m_dbh, 1);
}
--
Steve Mills
office: 952-818-3871
home: 952-401-6255
cell: 612-803-6157
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users