>  (a) an error result of some kind or (b) a corrupt database. 
I did not see any info about errmsg.

>  Are your processes using the same database connection or does each one
> have its own ? 
Two processes have two sqlite3_open(). So each one has its own.

>  Are you checking the result codes returned by all the API calls ? 
Yes. I use speedtest1.c as model code. 
      speedtest1_exec("BEGIN");
      speedtest1_prepare("INSERT INTO t1 VALUES(?1,?2,?3); --  %d times",
n);
      for(i=1; i<=n; i++){
        rc = sqlite3_bind_int64(g.pStmt, 1, i);
        rc = sqlite3_bind_int(g.pStmt, 2, i);
        rc = sqlite3_bind_text(g.pStmt, 3, "hello", -1, SQLITE_STATIC);
        speedtest1_run();
      }
      speedtest1_exec("COMMIT");
And I have checked rc = SQLITE_OK.

>  Can you reliably get less than 20000 rows ? 
Yes, always less than 20000.
Process A inserts 1-10000 and process B inserts 10001-20000. I found that
the first few rows is missing in the result. I mean there is no 10001-10xxx.

>  Does the problem go away if you use threadsafe = 2 ? 
The problem is still here.



--
Sent from: http://sqlite.1065341.n5.nabble.com/
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to