Hi Dan, Responses inline:
On 4/18/07, Dan Kennedy <[EMAIL PROTECTED]> wrote:
> At first I thought this had solved the problem, because all in house testing > runs beautifully. However, as soon as the device is sent to the field, the > error starts again. Unfortunately, it means that I have never been able to > catch this in debug. I did, however, change the error reporting a little > and got some more information. The SQLiteException I am not getting > includes this information: > > Insertion failed because the database is full That message is from the wrapper.
Yes, I talked to DRH yesterday on the phone and that was the initial conclusion, that this error is somehow related to the wrapper (in this case System.Data.SQLite .NET Managed Provider). I have posted a report in the BUG section of their Forums. In the meantime, DRH suggested I try to catch the error and recreate the Connection, which is first on my list for this morning. I'll keep the list posted.
database or disk is full And the above is from sqlite3. The corresponding return code is SQLITE_FULL. Search source file "os_win.c" for where SQLITE_FULL errors can be generated - there's only a couple of places. Odds on it's one of them. Looks like on windows, any error writing or seeking a file is reported as SQLITE_FULL. > at System.Data.SQLite.SQLite3.Reset() > at System.Data.SQLite.SQLite3.Step() > at System.Data.SQLite.SQLiteDataReader.NextResult() > at System.Data.SQLite.SQLiteDataReader.ctor() > at System.Data.SQLite.SQLiteCommand.ExecuteReader() > at System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader() > at ... etc etc So is this really a SELECT? Probably good to check that.
No question, it is absolutely a select. If it is a SELECT, why would it be filling up the database?
Is it rolling back a journal file and running out of space like that? Or the user rolling back the journal file doesn't have permission to write the database file and SQLite is reporting the error incorrectly.
As far as I know, there are no journal files. The user has full authority to the entire system including the SQLite database. Check for a journal file on the device after the error. Also
run the SQLite integrity-check on the database. Dan.
OK, I'll have to find out about that... Thanks, -- Joel Cochran