Hi Jan,
i had a similar problem. After a long debug session i found out that the error
cames from btree.c (+- line 1000) after the call get2bytes (if res > ...)
return ... .
so in my database i saw that there are a lot of FFŽs - anyway.
here are the code snippet.
btree.c
--------------------------------
top = get2byte(&data[hdr+5]);
pPage->nCell = get2byte(&data[hdr+3]);
if( pPage->nCell>MX_CELL(pBt) ){
/* To many cells for a single page. The page must be corrupt */
//return SQLITE_OK; /*temporarily!!!!!!!!!!!!!!!!!! uncomment this*/
return SQLITE_CORRUPT_BKPT;
}
--------------------------------
my solution was to temporarily return SQLITE_OK during a comlete reorganisation
of my db file.
so i have a function copy_table_content.
IŽm sure this is not the best way - but IT WORKS....
After my handmade session i set back the return to error ;-))
------------------------------
Jan Kandziora <[EMAIL PROTECTED]>
schrieb am 21.12.2005 18:18
> Hello all,
>
> I'm using sqlite3.2.7 and the tcl interface for my cash desk application
> TkKasse. Now a user of TkKasse got this serious problem with his cash
> register database.
>
> The cash register data is stored in a sqlite3 database with standard
> settings,
> which is now about 2MB in size. They store the database on an USB memory
> stick, which failed (I think). Fortunately, at least they made backups every
> 4..5 days, but now they ask me if it is possible to recover the cash register
> data of the last few days. It's about 400 records of ~0.5..1k each record.
>
> Now I have the database and a .journal file in the archive they sent to me.
> A .dump only brought back data that is in the backup, too. The pragma
> integrity_check; displayed:
>
> *** in database main ***
> Multiple uses for byte 330 of page 1359
> Multiple uses for byte 569 of page 1450
> On tree page 1257 cell 21: Child page depth differs
> On tree page 1257 cell 22: Child page depth differs
> On tree page 1257 cell 54: invalid page number -1922301952
> On tree page 1257 cell 54: Child page depth differs
> On tree page 1257 cell 55: Child page depth differs
> On tree page 1257 cell 94: invalid page number -1908867072
> On tree page 1257 cell 94: Child page depth differs
> On tree page 1257 cell 95: invalid page number -1908736000
> On tree page 1257 cell 96: Child page depth differs
> On tree page 1257 cell 97: invalid page number -1908408320
> On tree page 1257 cell 97: Child page depth differs
> On tree page 1257 cell 98: invalid page number -1908146176
> On tree page 1257 cell 99: Child page depth differs
> On tree page 1257 cell 106: invalid page number -1907294208
> On tree page 1257 cell 106: Child page depth differs
> On tree page 1257 cell 107: Child page depth differs
> Multiple uses for byte 356 of page 1257
> Page 6 is never used
> Page 7 is never used
> Page 8 is never used
> Page 9 is never used
> Page 10 is never used
> Page 11 is never used
> Page 12 is never used
> Page 13 is never used
> Page 14 is never used
> Page 15 is never used
> Page 16 is never used
> Page 17 is never used
> Page 18 is never used
> Page 19 is never used
> Page 20 is never used
> Page 21 is never used
> Page 22 is never used
> Page 23 is never used
> Page 24 is never used
> Page 25 is never used
> Page 26 is never used
> Page 1213 is never used
> Page 1268 is never used
> Page 1320 is never used
> Page 1321 is never used
> Page 1322 is never used
> Page 1325 is never used
> Page 1326 is never used
> Page 1327 is never used
> Page 1336 is never used
> SQL error: database disk image is malformed
>
> Any pointers what to try? I would even try a hex editor or write some code
> code if that helps.
>
> Kind regards,
>
> Jan
>
----BEGIN PUBLIC MCPKEY----
M1/7wYxS5C74n84I7NK7RUm3J3Uii0f9f8j5PwAAAABzuahKiQXSvsuHF9otWqciQwXRxRzR
pQm9YEPCAAAAAA==:bWF4aW11c3RlcmZyYXVAZ214Lm5ldA==
----END PUBLIC MCPKEY----