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----