Well, if the statements within your BEGIN TRANSACTION ... COMMIT only really
affects one database (hereafter called the main database) only that database
should be locked.
If you experience otherwise, it could be because:

1. The locking_mode for the databases has been set to EXCLUSIVE (see
http://sqlite.org/pragma.html#pragma_locking_mode)

2.  The statements executed against the main database may read from other
databases as part of the execution thus holding SHARED locks on the other
databases which will prevent writing to them. See an explanation of the
locking system in SQLite here (http://www.sqlite.org/lockingv3.html).
However, you should still be able to read from the other databases while the
transaction is being committed.

3. Inside the transaction against the main database you have overlooked some
statement that does in fact write to the other databases.

Perhaps you can supply some more details about what takes place inside the
transaction against the main database and what you are trying to do with the
other databases, if the above explanation doesn't solve your issue.


/Frank

> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-
> boun...@sqlite.org] On Behalf Of Simon L
> Sent: 26 October 2011 14:08
> To: sqlite-users@sqlite.org
> Subject: [sqlite] Multiple databases in one DB connection. How to let
BEGIN
> TRANSACTION..COMMIT apply to only one of them?
> 
> While  one of the databases is under a lengthy writing process,  I don't
want
> other databases to be locked by the BEGIN TRANSACTION...COMMIT lock.
> Is this possible? Thanks.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to