Re: [sqlite] Parallel accessing sqlite files in Win

2013-06-22 Thread Simon Slavin

On 22 Jun 2013, at 1:28pm, Lukas Haase  wrote:

> I use sqlite3_open_v2 with flag SQLITE_OPEN_READONLY to open an SQLite
> database. When different processes access the same file (read-only) in
> Win, can I be sure that there won't be any problems?

Bees may eat your hat.  Your local bar may cancel Mimosa Mondays.  What kinds 
of problem are you asking us about ?

> Furthermore, I open another database with SQLITE_OPEN_READWRITE |
> SQLITE_OPEN_CREATE. When different processes access the same database in
> in Win, are write operations synchronized automatically or do I need to
> care about synchronization myself?

SQLite handles synchronization itself unless you tell it not to (probably using 
PRAGMAs). If you just do your _open_v2() and issue SQLite commands then you can 
rely on SQLite handling all necessary locking for you.  You should, of course, 
still be checking the result codes returned by your sqlite3 API calls.

> Background: My Win32 app uses SQLite3 to store data/settings. Since the
> beginning, I just restricted the app to one instance to avoid any
> problems with parallel access to the files. Now I want to remove this
> constraint and aks myself if I need to do anything else except removing
> the single-instance check.

Don’t forget that even if a process opens a file for READONLY it can still be 
blocked because /another/ process has the file locked while it is writing to 
it.  Using READONLY does not mean you no longer have to care about file locking 
in your application.  But the usual SQLite rules apply: set your timeout to 
whatever you consider appropriate:



and pay attention to any result codes which are not SQLITE_OK.  If you do those 
things most other things take care of themselves.

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


[sqlite] Parallel accessing sqlite files in Win

2013-06-22 Thread Lukas Haase
Hi,

I use sqlite3_open_v2 with flag SQLITE_OPEN_READONLY to open an SQLite
database. When different processes access the same file (read-only) in
Win, can I be sure that there won't be any problems?

Furthermore, I open another database with SQLITE_OPEN_READWRITE |
SQLITE_OPEN_CREATE. When different processes access the same database in
in Win, are write operations synchronized automatically or do I need to
care about synchronization myself?

Background: My Win32 app uses SQLite3 to store data/settings. Since the
beginning, I just restricted the app to one instance to avoid any
problems with parallel access to the files. Now I want to remove this
constraint and aks myself if I need to do anything else except removing
the single-instance check.

Thank you,
Luke

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