Small. Fast. Reliable.
Choose any three.
*** 1,5 ****
--- 1,6 ----
  FAQ
  
+ ------
  Q) How can I compare the speed of SQLite writing and reading from a table to doing roughly the same thing with a flat file?
  
  ------
***************
*** 91,96 ****
--- 92,98 ----
  Q) What is the calling convention for sqlite3.dll API functions (for Windows)
  and
  for SQLite callback functions (for sqlite3_exec function)?{linebreak}
+ 
  A) cdecl (caller pushes parameters right to left on stack, caller cleans up)
  -------
  Q) On sqlite3_Open(), when the file with given filename doesn't exist, SQLite
***************
*** 101,109 ****
--- 103,113 ----
  So, what is the most natural way to determine, that Open() created new database
  instead of opening the
  existing one?{linebreak}
+ 
  A) Use some system API funtion like IsFileExists(DB_filename) before calling
  sqlite_open(DB_filename)
  {linebreak}
+ 
  A) or, use the "user_version" pragma.  Right after calling open(), do "pragma
  user_version".  If it returns
  "0", then assume that this is a new file -- create your tables and do "pragma
***************
*** 119,124 ****
--- 123,129 ----
  instead of automatically rollback it on opening the DB??? (assume the
  transaction journal file integrity is
  fully correct)
+ 
  A) No.
  -------
  Q) Is there a standard way of backing up SQlite databases aside from simply
***************
*** 137,142 ****
--- 142,148 ----
  ------
  Q) Is there a simple way to figure out the primary key(s) of a table through
  sql?
+ 
  A) Only by doing a select on the master table.
  ------
  Q) Does SQLite have a bulk loading tool?
***************
*** 154,159 ****
--- 160,166 ----
  ------
  Q) Are there any advantages of using either a static library over the linked
  library (Performace, Speed, Compatibality)?
+ 
  A) Depends, but on Windows platforms hardly. It matters startup times and
  perhaps the ease of deployment.
  ------