title: Multiple access to a single SQLite database file via System.Data.SQLite and c#
body: <p>As I can read from <a href="http://www.sqlite.org/faq.html#q5" rel="noreferrer"><strong>SQLite FAQ</strong></a> it supports multiple processes reading (SELECT) and only one process writing (INSERT, UPDATE, DELETE) database at any moment in time:</p>
  
  <blockquote>
    <p>SQLite uses reader/writer locks to control access to the database.
    When any process wants to write, it must lock the entire database file
    for the duration of its update. But that normally only takes a few
    milliseconds. Other processes just wait on the writer to finish then
    continue about their business</p>
  </blockquote>
  
  <p>I'm using <a href="http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki" rel="noreferrer"><strong>System.Data.SQLite</strong></a> adapter via c#.</p>
  
  <p>Could someone expalin me plz, how <strong>exactly</strong> this process is going on?</p>
  
  <p>Will this process work automatically and writing <strong>SQLiteCommand</strong> will simply wait if there is another writing <strong>SQLiteCommand</strong> already executing over the same database?</p>
  
  <p>Or maybe it will throw an exception? What kind of it?</p>
  
  <p>Sorry but I found no information about this mechanics :)</p>
  
  <p>Thank you.</p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>I've found post saying that <a href="https://stackoverflow.com/questions/11223044/retreiving-error-codes-from-sqlite-when-using-executenonquery"><strong>exception will be raised</strong></a> with a specific errorcode</p>
  
  <p>Is that statement correct? </p>