2011/6/30 Jean-Christophe Deschamps <[email protected]>
> >Is good enough for me. My only problem is that between reading the
> >data and
> >writing the changes, I want to be sure that no one has changed the data.
> >For me that is enough.
>
> For this, a simple "Begin immediate;" ... "Commit;" embrassing you
> read-modify-write block will do. Doesn't block readers and works in
> std and WAL journaling modes.
>
Do I understand it correctly that after a commit the database is writeable
again for others? In that case it is maybe better to do a:
*PRAGMA locking_mode = EXCLUSIVE;
*followed by an update of the database. As long as the application is
running, I want to be sure that nobody writes to the database.*
*
I am now using:
stat.execute("" +
"PRAGMA locking_mode = EXCLUSIVE;\n" +
"UPDATE authors\n" +
"SET name = name\n" +
"WHERE id = (\n" +
" SELECT MIN(id)\n"+
" FROM authors\n" +
");" +
"COMMIT;");
The COMMIT is to be sure that this will not unlock the database. It does
not. But I can read the database. Not a problem for me, but I understood it
should not be possible.
I just tried it with "BEGIN IMMEDIATE". Gives exactly the same results. So
properly I should stick to the "BEGIN IMMEDIATE"?
--
Cecil Westerhof
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users