[yunqa.de] Need comments about SQLite Error 1 - no such rowid: 0

  • From: Edwin Yip <edwin.yip@xxxxxxxxxxxxxxxxxx>
  • To: yunqa@xxxxxxxxxxxxx
  • Date: Tue, 18 Jan 2011 16:03:24 +0800

Hi Ralf,

I'm getting a 'SQLite Error 1 - no such rowid: 0' error report from my user,
but I myself failed to reproduce, I'm wondering with the following known
info if you can give me some hints as to how to fix it.

//Call stacks:

Exception class: ESQLite3
Exception message: SQLite Error 1 - no such rowid: 0.
Exception address: 03B94D2B
------------------------------------------------------------------------------
Stack list, generated 17/01/2011 12:46:12
[03B94D26] DISQLite3Api.sqlite3_raise_exception
[03B94CA9] DISQLite3Api.sqlite3_check
[03BEE639] DISQLite3Database.TDISQLite3IncrBlobStream.Create (Line 3481,
"DISQLite3Database.pas" + 2)
[03BEE6BA] DISQLite3Database.TDISQLite3IncrBlobStream.Create (Line 3500,
"DISQLite3Database.pas" + 1)

//Source code before the exception raises:

    FDb.StartTransaction;
    Stmt := FDb.Prepare('update Docs set Content=? where DocId=?');

    Stmt.Bind_ZeroBlob(1, srcFile.Size);

    Stmt.Bind_int(2, aDoc.DocId);

    Stmt.Step;
    //so far so good, so I think the row id 0 exists, whereas the error msg
says 'no such rowid'.


    //and the following statement causes the problem.

    BlobStream := TDISQLite3IncrBlobStream.Create(
      FDb, // The database connection.
      'main', // Database which contains the BLOB table.
      'Docs', // BLOB table.
      'Content', // BLOB column.
      aDoc.DocId, // RowID
      1);



Thanks and have a nice day!
-- 
Best Regards,
Edwin Yip

Mind Mapping is as Effortless as Typing
http://www.InnovationGear.com

Other related posts: