Documentation Source Text

Hex Artifact Content
Login

Artifact 919838c9eb9eed3045784f5ccfa9262718a31dec:


0000: 3c 74 69 74 6c 65 3e 55 6e 69 66 6f 72 6d 20 52  <title>Uniform R
0010: 65 73 6f 75 72 63 65 20 49 64 65 6e 74 69 66 69  esource Identifi
0020: 65 72 73 3c 2f 74 69 74 6c 65 3e 0a 3c 74 63 6c  ers</title>.<tcl
0030: 3e 0a 68 64 5f 6b 65 79 77 6f 72 64 73 20 7b 55  >.hd_keywords {U
0040: 52 49 7d 20 7b 55 6e 69 66 6f 72 6d 20 52 65 73  RI} {Uniform Res
0050: 6f 75 72 63 65 20 49 64 65 6e 74 69 66 69 65 72  ource Identifier
0060: 7d 20 7b 55 52 49 20 66 69 6c 65 6e 61 6d 65 7d  } {URI filename}
0070: 20 7b 55 52 49 20 66 69 6c 65 6e 61 6d 65 73 7d   {URI filenames}
0080: 0a 3c 2f 74 63 6c 3e 0a 0a 3c 68 31 3e 31 2e 30  .</tcl>..<h1>1.0
0090: 20 55 52 49 20 46 69 6c 65 6e 61 6d 65 73 20 49   URI Filenames I
00a0: 6e 20 53 51 4c 69 74 65 3c 2f 68 31 3e 0a 0a 3c  n SQLite</h1>..<
00b0: 70 3e 0a 42 65 67 69 6e 6e 69 6e 67 20 77 69 74  p>.Beginning wit
00c0: 68 20 5b 76 65 72 73 69 6f 6e 20 33 2e 37 2e 37  h [version 3.7.7
00d0: 5d 2c 20 74 68 65 20 53 51 4c 69 74 65 20 64 61  ], the SQLite da
00e0: 74 61 62 61 73 65 20 66 69 6c 65 20 61 72 67 75  tabase file argu
00f0: 6d 65 6e 74 20 74 6f 20 74 68 65 0a 5b 73 71 6c  ment to the.[sql
0100: 69 74 65 33 5f 6f 70 65 6e 28 29 5d 2c 20 5b 73  ite3_open()], [s
0110: 71 6c 69 74 65 33 5f 6f 70 65 6e 31 36 28 29 5d  qlite3_open16()]
0120: 2c 20 61 6e 64 20 5b 73 71 6c 69 74 65 33 5f 6f  , and [sqlite3_o
0130: 70 65 6e 5f 76 32 28 29 5d 20 69 6e 74 65 72 66  pen_v2()] interf
0140: 61 63 65 73 0a 61 6e 64 20 74 6f 20 74 68 65 20  aces.and to the 
0150: 5b 41 54 54 41 43 48 5d 20 63 6f 6d 6d 61 6e 64  [ATTACH] command
0160: 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65   can be specifie
0170: 64 0a 65 69 74 68 65 72 20 61 73 20 61 6e 20 6f  d.either as an o
0180: 72 64 69 6e 61 72 79 20 66 69 6c 65 6e 61 6d 65  rdinary filename
0190: 20 6f 72 20 61 73 20 61 20 55 6e 69 66 6f 72 6d   or as a Uniform
01a0: 20 52 65 73 6f 75 72 63 65 20 49 64 65 6e 74 69   Resource Identi
01b0: 66 69 65 72 20 6f 72 20 55 52 49 2e 0a 54 68 65  fier or URI..The
01c0: 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20 75 73   advantage of us
01d0: 69 6e 67 20 61 20 55 52 49 20 66 69 6c 65 6e 61  ing a URI filena
01e0: 6d 65 20 69 73 20 74 68 61 74 20 71 75 65 72 79  me is that query
01f0: 20 70 61 72 61 6d 65 74 65 72 73 20 6f 6e 20 74   parameters on t
0200: 68 65 20 55 52 49 20 63 61 6e 0a 62 65 20 75 73  he URI can.be us
0210: 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 64 65  ed to control de
0220: 74 61 69 6c 73 20 6f 66 20 74 68 65 20 6e 65 77  tails of the new
0230: 6c 79 20 63 72 65 61 74 65 64 20 64 61 74 61 62  ly created datab
0240: 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a  ase connection..
0250: 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 6e 20  For example, an 
0260: 61 6c 74 65 72 6e 61 74 69 76 65 20 5b 56 46 53  alternative [VFS
0270: 5d 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69  ] can be specifi
0280: 65 64 20 75 73 69 6e 67 20 61 20 0a 22 76 66 73  ed using a ."vfs
0290: 3d 22 20 71 75 65 72 79 20 70 61 72 61 6d 65 74  =" query paramet
02a0: 65 72 2e 0a 4f 72 20 74 68 65 20 64 61 74 61 62  er..Or the datab
02b0: 61 73 65 20 63 61 6e 20 62 65 20 6f 70 65 6e 65  ase can be opene
02c0: 64 20 72 65 61 64 2d 6f 6e 6c 79 20 62 79 20 75  d read-only by u
02d0: 73 69 6e 67 20 22 6d 6f 64 65 3d 72 6f 22 20 61  sing "mode=ro" a
02e0: 73 20 61 20 71 75 65 72 79 0a 70 61 72 61 6d 65  s a query.parame
02f0: 74 65 72 2e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 32  ter..</p>..<h1>2
0300: 2e 30 20 42 61 63 6b 77 61 72 64 73 20 43 6f 6d  .0 Backwards Com
0310: 70 61 74 69 62 69 6c 69 74 79 3c 2f 68 31 3e 0a  patibility</h1>.
0320: 0a 3c 70 3e 0a 49 6e 20 6f 72 64 65 72 20 74 6f  .<p>.In order to
0330: 20 6d 61 69 6e 74 61 69 6e 20 66 75 6c 6c 20 62   maintain full b
0340: 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69  ackwards compati
0350: 62 69 6c 69 74 79 20 66 6f 72 20 6c 65 67 61 63  bility for legac
0360: 79 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2c 0a  y applications,.
0370: 74 68 65 20 55 52 49 20 66 69 6c 65 6e 61 6d 65  the URI filename
0380: 20 63 61 70 61 62 69 6c 69 74 79 20 69 73 20 64   capability is d
0390: 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75  isabled by defau
03a0: 6c 74 2e 20 20 0a 5e 28 49 6e 20 6f 72 64 65 72  lt.  .^(In order
03b0: 20 66 6f 72 20 55 52 49 20 66 69 6c 65 6e 61 6d   for URI filenam
03c0: 65 73 0a 74 6f 20 77 6f 72 6b 2c 20 6f 6e 65 20  es.to work, one 
03d0: 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 66  or more of the f
03e0: 6f 6c 6c 6f 77 69 6e 67 20 6d 75 73 74 20 62 65  ollowing must be
03f0: 20 74 72 75 65 3a 0a 3c 2f 70 3e 0a 0a 3c 6f 6c   true:.</p>..<ol
0400: 3e 0a 3c 6c 69 3e 3c 70 3e 54 68 65 20 53 51 4c  >.<li><p>The SQL
0410: 69 74 65 20 6c 69 62 72 61 72 79 20 69 73 20 63  ite library is c
0420: 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 74 68 65  ompiled with the
0430: 20 5b 53 51 4c 49 54 45 5f 55 53 45 5f 55 52 49   [SQLITE_USE_URI
0440: 5d 20 0a 20 20 20 20 20 20 20 63 6f 6d 70 69 6c  ] .       compil
0450: 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 2e 3c 2f  e-time option.</
0460: 70 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 54  p></li>.<li><p>T
0470: 68 65 20 5b 73 71 6c 69 74 65 33 5f 63 6f 6e 66  he [sqlite3_conf
0480: 69 67 5d 28 5b 53 51 4c 49 54 45 5f 43 4f 4e 46  ig]([SQLITE_CONF
0490: 49 47 5f 55 52 49 5d 2c 20 31 29 3b 20 63 6f 6e  IG_URI], 1); con
04a0: 66 69 67 75 72 61 74 69 6f 6e 20 6f 70 74 69 6f  figuration optio
04b0: 6e 0a 20 20 20 20 20 20 20 69 73 20 73 65 74 20  n.       is set 
04c0: 61 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 73  at application s
04d0: 74 61 72 74 2d 74 69 6d 65 2e 3c 2f 70 3e 3c 2f  tart-time.</p></
04e0: 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 54 68 65 20 5b  li>.<li><p>The [
04f0: 53 51 4c 49 54 45 5f 4f 50 45 4e 5f 55 52 49 5d  SQLITE_OPEN_URI]
0500: 20 62 69 74 20 69 73 20 4f 52 2d 65 64 20 69 6e   bit is OR-ed in
0510: 20 77 69 74 68 20 74 68 65 20 73 65 74 20 62 69   with the set bi
0520: 74 73 20 70 61 73 73 65 64 20 69 6e 0a 20 20 20  ts passed in.   
0530: 20 20 20 20 61 73 20 74 68 65 20 33 72 64 20 70      as the 3rd p
0540: 61 72 61 6d 65 74 65 72 20 74 6f 20 74 68 65 20  arameter to the 
0550: 5b 73 71 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32  [sqlite3_open_v2
0560: 28 29 5d 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  ()] interface.</
0570: 70 3e 3c 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 29 5e 0a  p></li>.</ol>)^.
0580: 0a 3c 70 3e 0a 5e 49 66 20 55 52 49 20 66 69 6c  .<p>.^If URI fil
0590: 65 6e 61 6d 65 73 20 61 72 65 20 72 65 63 6f 67  enames are recog
05a0: 6e 69 7a 65 64 20 77 68 65 6e 20 74 68 65 20 64  nized when the d
05b0: 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69  atabase connecti
05c0: 6f 6e 20 69 73 20 6f 72 69 67 69 6e 61 6c 6c 79  on is originally
05d0: 0a 6f 70 65 6e 65 64 2c 20 74 68 65 6e 20 55 52  .opened, then UR
05e0: 49 20 66 69 6c 65 6e 61 6d 65 73 20 77 69 6c 6c  I filenames will
05f0: 20 61 6c 73 6f 20 62 65 20 72 65 63 6f 67 6e 69   also be recogni
0600: 7a 65 64 20 6f 6e 20 5b 41 54 54 41 43 48 5d 20  zed on [ATTACH] 
0610: 73 74 61 74 65 6d 65 6e 74 73 2e 0a 5e 53 69 6d  statements..^Sim
0620: 69 6c 61 72 6c 79 2c 20 69 66 20 55 52 49 20 66  ilarly, if URI f
0630: 69 6c 65 6e 61 6d 65 73 20 61 72 65 20 6e 6f 74  ilenames are not
0640: 20 72 65 63 6f 67 6e 69 7a 65 64 20 77 68 65 6e   recognized when
0650: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f   the database co
0660: 6e 6e 65 63 74 69 6f 6e 0a 69 73 20 66 69 72 73  nnection.is firs
0670: 74 20 6f 70 65 6e 65 64 2c 20 74 68 65 79 20 77  t opened, they w
0680: 69 6c 6c 20 6e 6f 74 20 62 65 20 72 65 63 6f 67  ill not be recog
0690: 6e 69 7a 65 64 20 62 79 20 5b 41 54 54 41 43 48  nized by [ATTACH
06a0: 5d 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 53 69 6e  ]..</p>..<p>.Sin
06b0: 63 65 20 53 51 4c 69 74 65 20 61 6c 77 61 79 73  ce SQLite always
06c0: 20 69 6e 74 65 72 70 72 65 74 73 20 61 6e 79 20   interprets any 
06d0: 66 69 6c 65 6e 61 6d 65 20 74 68 61 74 20 64 6f  filename that do
06e0: 65 73 20 6e 6f 74 20 62 65 67 69 6e 73 20 0a 77  es not begins .w
06f0: 69 74 68 20 22 3c 74 74 3e 66 69 6c 65 3a 3c 2f  ith "<tt>file:</
0700: 74 74 3e 22 0a 61 73 20 61 6e 20 6f 72 64 69 6e  tt>".as an ordin
0710: 61 72 79 20 66 69 6c 65 6e 61 6d 65 20 72 65 67  ary filename reg
0720: 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 55  ardless of the U
0730: 52 49 20 73 65 74 74 69 6e 67 2c 20 61 6e 64 20  RI setting, and 
0740: 62 65 63 61 75 73 65 20 69 74 20 69 73 0a 76 65  because it is.ve
0750: 72 79 20 75 6e 75 73 75 61 6c 20 74 6f 20 68 61  ry unusual to ha
0760: 76 65 20 61 6e 20 61 63 74 75 61 6c 20 66 69 6c  ve an actual fil
0770: 65 20 62 65 67 69 6e 20 77 69 74 68 20 22 3c 74  e begin with "<t
0780: 74 3e 66 69 6c 65 3a 3c 2f 74 74 3e 22 2c 20 0a  t>file:</tt>", .
0790: 69 74 20 69 73 20 73 61 66 65 20 66 6f 72 20 6d  it is safe for m
07a0: 6f 73 74 20 61 70 70 6c 69 63 61 74 69 6f 6e 73  ost applications
07b0: 20 74 6f 20 65 6e 61 62 6c 65 20 55 52 49 20 70   to enable URI p
07c0: 72 6f 63 65 73 73 69 6e 67 20 65 76 65 6e 20 69  rocessing even i
07d0: 66 20 55 52 49 20 0a 66 69 6c 65 6e 61 6d 65 73  f URI .filenames
07e0: 20 61 72 65 20 6e 6f 74 20 63 75 72 72 65 6e 74   are not current
07f0: 6c 79 20 62 65 69 6e 67 20 75 73 65 64 2e 0a 3c  ly being used..<
0800: 2f 70 3e 0a 0a 3c 68 31 3e 33 2e 30 20 55 52 49  /p>..<h1>3.0 URI
0810: 20 46 6f 72 6d 61 74 3c 2f 68 31 3e 0a 0a 3c 70   Format</h1>..<p
0820: 3e 0a 41 63 63 6f 72 64 69 6e 67 20 74 6f 20 5b  >.According to [
0830: 68 74 74 70 3a 2f 2f 74 6f 6f 6c 73 2e 69 65 74  http://tools.iet
0840: 66 2e 6f 72 67 2f 68 74 6d 6c 2f 72 66 63 33 39  f.org/html/rfc39
0850: 38 36 20 7c 20 52 46 43 20 33 39 38 36 5d 2c 20  86 | RFC 3986], 
0860: 61 20 55 52 49 20 63 6f 6e 73 69 73 74 73 0a 6f  a URI consists.o
0870: 66 20 61 20 73 63 68 65 6d 65 2c 20 61 6e 20 61  f a scheme, an a
0880: 75 74 68 6f 72 69 74 79 2c 20 61 20 70 61 74 68  uthority, a path
0890: 2c 20 61 20 71 75 65 72 79 20 73 74 72 69 6e 67  , a query string
08a0: 2c 20 61 6e 64 20 61 20 66 72 61 67 6d 65 6e 74  , and a fragment
08b0: 2e 20 20 54 68 65 0a 73 63 68 65 6d 65 20 69 73  .  The.scheme is
08c0: 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64   always required
08d0: 2e 20 20 4f 6e 65 20 6f 66 20 65 69 74 68 65 72  .  One of either
08e0: 20 74 68 65 20 61 75 74 68 6f 72 69 74 79 20 6f   the authority o
08f0: 72 20 74 68 65 20 70 61 74 68 20 69 73 20 61 6c  r the path is al
0900: 73 6f 0a 61 6c 77 61 79 73 20 72 65 71 75 69 72  so.always requir
0910: 65 64 2e 20 20 54 68 65 20 71 75 65 72 79 20 73  ed.  The query s
0920: 74 72 69 6e 67 20 61 6e 64 20 66 72 61 67 6d 65  tring and fragme
0930: 6e 74 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 2e  nt are optional.
0940: 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 53 51 4c 69 74  .</p>..<p>.SQLit
0950: 65 20 75 73 65 73 20 74 68 65 20 22 3c 74 74 3e  e uses the "<tt>
0960: 66 69 6c 65 3a 3c 2f 74 74 3e 22 20 55 52 49 20  file:</tt>" URI 
0970: 73 79 6e 74 61 78 20 74 6f 20 69 64 65 6e 74 69  syntax to identi
0980: 66 79 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  fy database file
0990: 73 2e 0a 53 51 4c 69 74 65 20 73 74 72 69 76 65  s..SQLite strive
09a0: 73 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 66  s to interpret f
09b0: 69 6c 65 3a 20 55 52 49 73 20 69 6e 20 65 78 61  ile: URIs in exa
09c0: 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 77 61  ctly the same wa
09d0: 79 20 61 73 0a 70 6f 70 75 6c 61 72 20 77 65 62  y as.popular web
09e0: 2d 62 72 6f 77 73 65 72 73 20 73 75 63 68 20 61  -browsers such a
09f0: 73 20 0a 5b 68 74 74 70 3a 2f 2f 77 77 77 2e 6d  s .[http://www.m
0a00: 6f 7a 69 6c 6c 61 2e 63 6f 6d 2f 65 6e 2d 55 53  ozilla.com/en-US
0a10: 2f 66 69 72 65 66 6f 78 2f 6e 65 77 2f 20 7c 20  /firefox/new/ | 
0a20: 46 69 72 65 66 6f 78 5d 2c 20 0a 5b 68 74 74 70  Firefox], .[http
0a30: 3a 2f 2f 77 77 77 2e 67 6f 6f 67 6c 65 2e 63 6f  ://www.google.co
0a40: 6d 2f 63 68 72 6f 6d 65 2f 20 7c 20 43 68 72 6f  m/chrome/ | Chro
0a50: 6d 65 5d 2c 20 0a 5b 68 74 74 70 3a 2f 2f 77 77  me], .[http://ww
0a60: 77 2e 61 70 70 6c 65 2e 63 6f 6d 2f 73 61 66 61  w.apple.com/safa
0a70: 72 69 2f 20 7c 20 53 61 66 61 72 69 5d 2c 20 0a  ri/ | Safari], .
0a80: 5b 68 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 2e  [http://windows.
0a90: 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 65 6e  microsoft.com/en
0aa0: 2d 55 53 2f 69 6e 74 65 72 6e 65 74 2d 65 78 70  -US/internet-exp
0ab0: 6c 6f 72 65 72 2f 70 72 6f 64 75 63 74 73 2f 69  lorer/products/i
0ac0: 65 2f 68 6f 6d 65 20 7c 20 49 6e 74 65 72 6e 65  e/home | Interne
0ad0: 74 20 45 78 70 6c 6f 72 65 72 5d 2c 20 61 6e 64  t Explorer], and
0ae0: 0a 5b 68 74 74 70 3a 2f 2f 77 77 77 2e 6f 70 65  .[http://www.ope
0af0: 72 61 2e 63 6f 6d 2f 20 7c 20 4f 70 65 72 61 5d  ra.com/ | Opera]
0b00: 2c 0a 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6c 69  ,.and command-li
0b10: 6e 65 20 70 72 6f 67 72 61 6d 73 20 73 75 63 68  ne programs such
0b20: 20 61 73 20 0a 5b 68 74 74 70 3a 2f 2f 77 77 77   as .[http://www
0b30: 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 72  .microsoft.com/r
0b40: 65 73 6f 75 72 63 65 73 2f 64 6f 63 75 6d 65 6e  esources/documen
0b50: 74 61 74 69 6f 6e 2f 77 69 6e 64 6f 77 73 2f 78  tation/windows/x
0b60: 70 2f 61 6c 6c 2f 70 72 6f 64 64 6f 63 73 2f 65  p/all/proddocs/e
0b70: 6e 2d 75 73 2f 73 74 61 72 74 2e 6d 73 70 78 20  n-us/start.mspx 
0b80: 7c 20 57 69 6e 64 6f 77 73 20 22 73 74 61 72 74  | Windows "start
0b90: 22 5d 20 61 6e 64 20 74 68 65 20 4d 61 63 20 4f  "] and the Mac O
0ba0: 53 2d 58 0a 5b 68 74 74 70 3a 2f 2f 64 65 76 65  S-X.[http://deve
0bb0: 6c 6f 70 65 72 2e 61 70 70 6c 65 2e 63 6f 6d 2f  loper.apple.com/
0bc0: 6c 69 62 72 61 72 79 2f 6d 61 63 2f 23 64 6f 63  library/mac/#doc
0bd0: 75 6d 65 6e 74 61 74 69 6f 6e 2f 44 61 72 77 69  umentation/Darwi
0be0: 6e 2f 52 65 66 65 72 65 6e 63 65 2f 4d 61 6e 50  n/Reference/ManP
0bf0: 61 67 65 73 2f 6d 61 6e 31 2f 6f 70 65 6e 2e 31  ages/man1/open.1
0c00: 2e 68 74 6d 6c 20 7c 20 22 6f 70 65 6e 22 5d 20  .html | "open"] 
0c10: 63 6f 6d 6d 61 6e 64 2e 0a 41 20 73 75 63 63 69  command..A succi
0c20: 6e 63 74 20 73 75 6d 6d 61 72 79 20 6f 66 20 74  nct summary of t
0c30: 68 65 20 55 52 49 20 70 61 72 73 69 6e 67 20 72  he URI parsing r
0c40: 75 6c 65 73 20 66 6f 6c 6c 6f 77 73 3a 0a 3c 2f  ules follows:.</
0c50: 70 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 20 5e 28  p>..<ul>.<li> ^(
0c60: 54 68 65 20 73 63 68 65 6d 65 20 6f 66 20 74 68  The scheme of th
0c70: 65 20 55 52 49 20 6d 75 73 74 20 62 65 20 22 3c  e URI must be "<
0c80: 74 74 3e 66 69 6c 65 3a 3c 2f 74 74 3e 22 2e 20  tt>file:</tt>". 
0c90: 20 41 6e 79 20 6f 74 68 65 72 20 73 63 68 65 6d   Any other schem
0ca0: 65 0a 20 20 20 20 20 72 65 73 75 6c 74 73 20 69  e.     results i
0cb0: 6e 20 74 68 65 20 69 6e 70 75 74 20 62 65 69 6e  n the input bein
0cc0: 67 20 74 72 65 61 74 65 64 20 61 73 20 61 6e 20  g treated as an 
0cd0: 6f 72 64 69 6e 61 72 79 20 66 69 6c 65 6e 61 6d  ordinary filenam
0ce0: 65 2e 29 5e 0a 3c 6c 69 3e 20 5e 28 54 68 65 20  e.)^.<li> ^(The 
0cf0: 61 75 74 68 6f 72 69 74 79 20 6d 61 79 20 62 65  authority may be
0d00: 20 6f 6d 69 74 74 65 64 2c 20 6d 61 79 20 62 65   omitted, may be
0d10: 20 62 6c 61 6e 6b 2c 20 6f 72 20 6d 61 79 20 62   blank, or may b
0d20: 65 0a 20 20 20 20 20 20 22 3c 74 74 3e 6c 6f 63  e.      "<tt>loc
0d30: 61 6c 68 6f 73 74 3c 2f 74 74 3e 22 2e 20 20 41  alhost</tt>".  A
0d40: 6e 79 20 6f 74 68 65 72 20 61 75 74 68 6f 72 69  ny other authori
0d50: 74 79 20 72 65 73 75 6c 74 73 20 69 6e 20 61 6e  ty results in an
0d60: 20 65 72 72 6f 72 2e 29 5e 0a 3c 6c 69 3e 20 5e   error.)^.<li> ^
0d70: 54 68 65 20 70 61 74 68 20 69 73 20 6f 70 74 69  The path is opti
0d80: 6f 6e 61 6c 20 69 66 20 74 68 65 20 61 75 74 68  onal if the auth
0d90: 6f 72 69 74 79 20 69 73 20 70 72 65 73 65 6e 74  ority is present
0da0: 2e 20 20 5e 49 66 20 74 68 65 20 61 75 74 68 6f  .  ^If the autho
0db0: 72 69 74 79 0a 20 20 20 20 20 69 73 20 6f 6d 69  rity.     is omi
0dc0: 74 74 65 64 20 74 68 65 6e 20 74 68 65 20 70 61  tted then the pa
0dd0: 74 68 20 69 73 20 72 65 71 75 69 72 65 64 2e 20  th is required. 
0de0: 0a 3c 6c 69 3e 20 5e 54 68 65 20 71 75 65 72 79  .<li> ^The query
0df0: 20 73 74 72 69 6e 67 20 69 73 20 6f 70 74 69 6f   string is optio
0e00: 6e 61 6c 2e 20 20 5e 49 66 20 74 68 65 20 71 75  nal.  ^If the qu
0e10: 65 72 79 20 73 74 72 69 6e 67 20 69 73 20 70 72  ery string is pr
0e20: 65 73 65 6e 74 2c 20 74 68 65 6e 0a 20 20 20 20  esent, then.    
0e30: 20 20 61 6c 6c 20 71 75 65 72 79 20 70 61 72 61    all query para
0e40: 6d 65 74 65 72 73 20 61 72 65 20 70 61 73 73 65  meters are passe
0e50: 64 20 74 68 72 6f 75 67 68 20 69 6e 74 6f 20 74  d through into t
0e60: 68 65 20 78 4f 70 65 6e 20 6d 65 74 68 6f 64 20  he xOpen method 
0e70: 6f 66 0a 20 20 20 20 20 20 74 68 65 20 75 6e 64  of.      the und
0e80: 65 72 6c 79 69 6e 67 20 5b 56 46 53 5d 2e 20 20  erlying [VFS].  
0e90: 0a 3c 6c 69 3e 20 5e 28 54 68 65 20 66 72 61 67  .<li> ^(The frag
0ea0: 6d 65 6e 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c  ment is optional
0eb0: 2e 20 20 49 66 20 70 72 65 73 65 6e 74 2c 20 69  .  If present, i
0ec0: 74 20 69 73 20 69 67 6e 6f 72 65 64 2e 29 5e 0a  t is ignored.)^.
0ed0: 3c 2f 75 6c 3e 0a 0a 3c 70 3e 5e 5a 65 72 6f 20  </ul>..<p>^Zero 
0ee0: 6f 72 20 6d 6f 72 65 20 65 73 63 61 70 65 20 73  or more escape s
0ef0: 65 71 75 65 6e 63 65 73 20 6f 66 20 74 68 65 20  equences of the 
0f00: 66 6f 72 6d 20 20 22 3c 62 3e 25 3c 69 3e 48 48  form  "<b>%<i>HH
0f10: 3c 2f 69 3e 3c 2f 62 3e 22 20 0a 28 77 68 65 72  </i></b>" .(wher
0f20: 65 20 3c 62 3e 3c 69 3e 48 3c 2f 69 3e 3c 2f 62  e <b><i>H</i></b
0f30: 3e 20 72 65 70 72 65 73 65 6e 74 73 20 61 6e 79  > represents any
0f40: 20 68 65 78 61 64 65 63 69 6d 61 6c 20 64 69 67   hexadecimal dig
0f50: 69 74 29 20 63 61 6e 20 6f 63 63 75 72 20 0a 69  it) can occur .i
0f60: 6e 20 74 68 65 20 70 61 74 68 2c 20 71 75 65 72  n the path, quer
0f70: 79 20 73 74 72 69 6e 67 2c 20 6f 72 20 66 72 61  y string, or fra
0f80: 67 6d 65 6e 74 2e 3c 2f 70 3e 0a 0a 3c 70 3e 5e  gment.</p>..<p>^
0f90: 41 20 66 69 6c 65 6e 61 6d 65 20 74 68 61 74 20  A filename that 
0fa0: 69 73 20 6e 6f 74 20 61 20 77 65 6c 6c 2d 66 6f  is not a well-fo
0fb0: 72 6d 65 64 20 55 52 49 20 69 73 20 69 6e 74 65  rmed URI is inte
0fc0: 72 70 72 65 74 65 64 20 61 73 20 61 6e 0a 6f 72  rpreted as an.or
0fd0: 64 69 6e 61 72 79 20 66 69 6c 65 6e 61 6d 65 2e  dinary filename.
0fe0: 3c 2f 70 3e 0a 0a 3c 70 3e 5e 55 52 49 73 20 61  </p>..<p>^URIs a
0ff0: 72 65 20 70 72 6f 63 65 73 73 65 64 20 61 73 20  re processed as 
1000: 55 54 46 38 20 74 65 78 74 2e 0a 5e 54 68 65 20  UTF8 text..^The 
1010: 66 69 6c 65 6e 61 6d 65 20 61 72 67 75 6d 65 6e  filename argumen
1020: 74 20 73 71 6c 69 74 65 33 5f 6f 70 65 6e 31 36  t sqlite3_open16
1030: 28 29 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20  () is converted 
1040: 66 72 6f 6d 20 55 54 46 31 36 20 0a 6e 61 74 69  from UTF16 .nati
1050: 76 65 20 62 79 74 65 20 6f 72 64 65 72 20 69 6e  ve byte order in
1060: 74 6f 20 55 54 46 38 20 70 72 69 6f 72 20 74 6f  to UTF8 prior to
1070: 20 70 72 6f 63 65 73 73 69 6e 67 2e 0a 0a 3c 68   processing...<h
1080: 32 3e 33 2e 31 20 54 68 65 20 55 52 49 20 50 61  2>3.1 The URI Pa
1090: 74 68 3c 2f 68 32 3e 0a 0a 3c 70 3e 5e 54 68 65  th</h2>..<p>^The
10a0: 20 70 61 74 68 20 63 6f 6d 70 6f 6e 65 6e 74 20   path component 
10b0: 6f 66 20 74 68 65 20 55 52 49 20 73 70 65 63 69  of the URI speci
10c0: 66 69 65 73 20 74 68 65 20 64 69 73 6b 20 66 69  fies the disk fi
10d0: 6c 65 20 74 68 61 74 20 69 73 20 74 68 65 0a 53  le that is the.S
10e0: 51 4c 69 74 65 20 64 61 74 61 62 61 73 65 20 74  QLite database t
10f0: 6f 20 62 65 20 6f 70 65 6e 65 64 2e 20 20 5e 28  o be opened.  ^(
1100: 49 66 20 74 68 65 20 70 61 74 68 20 63 6f 6d 70  If the path comp
1110: 6f 6e 65 6e 74 20 69 73 20 6f 6d 69 74 74 65 64  onent is omitted
1120: 2c 20 74 68 65 6e 0a 74 68 65 20 64 61 74 61 62  , then.the datab
1130: 61 73 65 20 69 73 20 73 74 6f 72 65 64 20 69 6e  ase is stored in
1140: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c   a temporary fil
1150: 65 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 61  e that will be a
1160: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 64 65 6c  utomatically.del
1170: 65 74 65 64 20 77 68 65 6e 20 74 68 65 20 64 61  eted when the da
1180: 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f  tabase connectio
1190: 6e 20 63 6c 6f 73 65 73 2e 29 5e 20 20 5e 49 66  n closes.)^  ^If
11a0: 20 74 68 65 20 61 75 74 68 6f 72 69 74 79 20 73   the authority s
11b0: 65 63 74 69 6f 6e 0a 69 73 20 70 72 65 73 65 6e  ection.is presen
11c0: 74 2c 20 74 68 65 6e 20 74 68 65 20 70 61 74 68  t, then the path
11d0: 20 69 73 20 61 6c 77 61 79 73 20 61 6e 20 61 62   is always an ab
11e0: 73 6f 6c 75 74 65 20 70 61 74 68 6e 61 6d 65 2e  solute pathname.
11f0: 20 20 5e 49 66 20 74 68 65 20 0a 61 75 74 68 6f    ^If the .autho
1200: 72 69 74 79 20 73 65 63 74 69 6f 6e 20 69 73 20  rity section is 
1210: 6f 6d 69 74 74 65 64 2c 20 74 68 65 6e 20 74 68  omitted, then th
1220: 65 20 70 61 74 68 20 69 73 20 61 6e 20 61 62 73  e path is an abs
1230: 6f 6c 75 74 65 20 70 61 74 68 6e 61 6d 65 20 69  olute pathname i
1240: 66 20 69 74 0a 62 65 67 69 6e 73 20 77 69 74 68  f it.begins with
1250: 20 74 68 65 20 22 2f 22 20 63 68 61 72 61 63 74   the "/" charact
1260: 65 72 20 28 41 53 43 49 49 20 63 6f 64 65 20 30  er (ASCII code 0
1270: 78 32 66 29 20 61 6e 64 20 69 73 20 61 20 72 65  x2f) and is a re
1280: 6c 61 74 69 76 65 0a 70 61 74 68 6e 61 6d 65 20  lative.pathname 
1290: 6f 74 68 65 72 77 69 73 65 2e 20 20 5e 28 4f 6e  otherwise.  ^(On
12a0: 20 77 69 6e 64 6f 77 73 2c 20 69 66 20 74 68 65   windows, if the
12b0: 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 20 62   absolute path b
12c0: 65 67 69 6e 73 20 77 69 74 68 0a 22 3c 62 3e 2f  egins with."<b>/
12d0: 3c 69 3e 58 3c 2f 69 3e 3a 2f 3c 2f 62 3e 22 20  <i>X</i>:/</b>" 
12e0: 77 68 65 72 65 20 3c 62 3e 3c 69 3e 58 3c 2f 69  where <b><i>X</i
12f0: 3e 3c 2f 62 3e 20 69 73 20 61 6e 79 20 73 69 6e  ></b> is any sin
1300: 67 6c 65 20 41 53 43 49 49 20 61 6c 70 68 61 62  gle ASCII alphab
1310: 65 74 69 63 0a 63 68 61 72 61 63 74 65 72 20 28  etic.character (
1320: 22 61 22 20 74 68 72 6f 75 67 68 20 22 7a 22 20  "a" through "z" 
1330: 6f 72 20 22 41 22 20 74 68 72 6f 75 67 68 20 22  or "A" through "
1340: 5a 22 29 20 74 68 65 6e 20 74 68 65 20 22 3c 62  Z") then the "<b
1350: 3e 3c 69 3e 58 3a 3c 2f 69 3e 3c 2f 62 3e 22 0a  ><i>X:</i></b>".
1360: 69 73 20 75 6e 64 65 72 73 74 6f 6f 64 20 74 6f  is understood to
1370: 20 62 65 20 74 68 65 20 64 72 69 76 65 20 6c 65   be the drive le
1380: 74 74 65 72 20 6f 66 20 74 68 65 20 76 6f 6c 75  tter of the volu
1390: 6d 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68  me containing th
13a0: 65 20 66 69 6c 65 2c 0a 6e 6f 74 20 74 68 65 20  e file,.not the 
13b0: 74 6f 70 6c 65 76 65 6c 20 64 69 72 65 63 74 6f  toplevel directo
13c0: 72 79 2e 29 5e 0a 0a 3c 70 3e 41 6e 20 6f 72 64  ry.)^..<p>An ord
13d0: 69 6e 61 72 79 20 66 69 6c 65 6e 61 6d 65 20 63  inary filename c
13e0: 61 6e 20 75 73 75 61 6c 6c 79 20 62 65 20 63 6f  an usually be co
13f0: 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 61 6e 20  nverted into an 
1400: 65 71 75 69 76 61 6c 65 6e 74 20 55 52 49 20 0a  equivalent URI .
1410: 62 79 20 74 68 65 20 73 74 65 70 73 20 73 68 6f  by the steps sho
1420: 77 6e 20 62 65 6c 6f 77 2e 20 20 54 68 65 20 6f  wn below.  The o
1430: 6e 65 20 65 78 63 65 70 74 69 6f 6e 20 69 73 20  ne exception is 
1440: 74 68 61 74 20 61 20 72 65 6c 61 74 69 76 65 20  that a relative 
1450: 77 69 6e 64 6f 77 73 0a 70 61 74 68 6e 61 6d 65  windows.pathname
1460: 20 77 69 74 68 20 61 20 64 72 69 76 65 20 6c 65   with a drive le
1470: 74 74 65 72 20 63 61 6e 6e 6f 74 20 62 65 20 63  tter cannot be c
1480: 6f 6e 76 65 72 74 65 64 20 64 69 72 65 63 74 6c  onverted directl
1490: 79 20 69 6e 74 6f 20 61 20 55 52 49 3b 20 69 74  y into a URI; it
14a0: 20 6d 75 73 74 0a 62 65 20 63 68 61 6e 67 65 64   must.be changed
14b0: 20 69 6e 74 6f 20 61 6e 20 61 62 73 6f 6c 75 74   into an absolut
14c0: 65 20 70 61 74 68 6e 61 6d 65 20 66 69 72 73 74  e pathname first
14d0: 2e 3c 2f 70 3e 0a 0a 3c 6f 6c 3e 0a 3c 6c 69 3e  .</p>..<ol>.<li>
14e0: 43 6f 6e 76 65 72 74 20 61 6c 6c 20 22 3c 74 74  Convert all "<tt
14f0: 3e 3f 3c 2f 74 74 3e 22 20 63 68 61 72 61 63 74  >?</tt>" charact
1500: 65 72 73 20 69 6e 74 6f 20 22 3c 74 74 3e 25 33  ers into "<tt>%3
1510: 66 3c 2f 74 74 3e 22 2e 0a 3c 6c 69 3e 43 6f 6e  f</tt>"..<li>Con
1520: 76 65 72 74 20 61 6c 6c 20 22 3c 74 74 3e 23 3c  vert all "<tt>#<
1530: 2f 74 74 3e 22 20 63 68 61 72 61 63 74 65 72 73  /tt>" characters
1540: 20 69 6e 74 6f 20 22 3c 74 74 3e 25 32 33 3c 2f   into "<tt>%23</
1550: 74 74 3e 22 2e 0a 3c 6c 69 3e 4f 6e 20 77 69 6e  tt>"..<li>On win
1560: 64 6f 77 73 20 6f 6e 6c 79 2c 20 63 6f 6e 76 65  dows only, conve
1570: 72 74 20 61 6c 6c 20 22 3c 74 74 3e 5c 3c 2f 74  rt all "<tt>\</t
1580: 74 3e 22 20 63 68 61 72 61 63 74 65 72 73 20 69  t>" characters i
1590: 6e 74 6f 20 22 3c 74 74 3e 2f 3c 2f 74 74 3e 22  nto "<tt>/</tt>"
15a0: 2e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 61 6c  ..<li>Convert al
15b0: 6c 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 74  l sequences of t
15c0: 77 6f 20 6f 72 20 6d 6f 72 65 20 22 3c 74 74 3e  wo or more "<tt>
15d0: 2f 3c 2f 74 74 3e 22 20 63 68 61 72 61 63 74 65  /</tt>" characte
15e0: 72 73 20 69 6e 74 6f 20 61 0a 20 20 20 20 73 69  rs into a.    si
15f0: 6e 67 6c 65 20 22 3c 74 74 3e 2f 3c 2f 74 74 3e  ngle "<tt>/</tt>
1600: 22 20 63 68 61 72 61 63 74 65 72 2e 0a 3c 6c 69  " character..<li
1610: 3e 4f 6e 20 77 69 6e 64 6f 77 73 20 6f 6e 6c 79  >On windows only
1620: 2c 20 69 66 20 74 68 65 20 66 69 6c 65 6e 61 6d  , if the filenam
1630: 65 20 62 65 67 69 6e 73 20 77 69 74 68 20 61 20  e begins with a 
1640: 64 72 69 76 65 20 6c 65 74 74 65 72 2c 20 70 72  drive letter, pr
1650: 65 70 65 6e 64 0a 20 20 20 20 61 20 73 69 6e 67  epend.    a sing
1660: 6c 65 20 22 3c 74 74 3e 2f 3c 2f 74 74 3e 22 20  le "<tt>/</tt>" 
1670: 63 68 61 72 61 63 74 65 72 2e 0a 3c 6c 69 3e 50  character..<li>P
1680: 72 65 70 65 6e 64 20 74 68 65 20 22 3c 74 74 3e  repend the "<tt>
1690: 66 69 6c 65 3a 3c 2f 74 74 3e 22 20 73 63 68 65  file:</tt>" sche
16a0: 6d 65 2e 0a 3c 2f 6f 6c 3e 0a 0a 3c 68 32 3e 33  me..</ol>..<h2>3
16b0: 2e 32 20 51 75 65 72 79 20 53 74 72 69 6e 67 3c  .2 Query String<
16c0: 2f 68 32 3e 0a 0a 3c 70 3e 5e 41 20 55 52 49 20  /h2>..<p>^A URI 
16d0: 66 69 6c 65 6e 61 6d 65 20 63 61 6e 20 6f 70 74  filename can opt
16e0: 69 6f 6e 61 6c 6c 79 20 62 65 20 66 6f 6c 6c 6f  ionally be follo
16f0: 77 65 64 20 62 79 20 61 20 71 75 65 72 79 20 73  wed by a query s
1700: 74 72 69 6e 67 2e 0a 5e 54 68 65 20 71 75 65 72  tring..^The quer
1710: 79 20 73 74 72 69 6e 67 20 63 6f 6e 73 69 73 74  y string consist
1720: 73 20 6f 66 20 74 65 78 74 20 66 6f 6c 6c 6f 77  s of text follow
1730: 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 22 3c  ing the first "<
1740: 74 74 3e 3f 3c 2f 74 74 3e 22 0a 63 68 61 72 61  tt>?</tt>".chara
1750: 63 74 65 72 20 62 75 74 20 65 78 63 6c 75 64 69  cter but excludi
1760: 6e 67 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20  ng the optional 
1770: 66 72 61 67 6d 65 6e 74 20 74 68 61 74 20 62 65  fragment that be
1780: 67 69 6e 73 20 77 69 74 68 20 77 69 74 68 0a 22  gins with with."
1790: 3c 74 74 3e 23 3c 2f 74 74 3e 22 2e 20 20 5e 54  <tt>#</tt>".  ^T
17a0: 68 65 20 71 75 65 72 79 20 73 74 72 69 6e 67 20  he query string 
17b0: 69 73 20 64 69 76 69 64 65 64 20 69 6e 74 6f 20  is divided into 
17c0: 6b 65 79 2f 76 61 6c 75 65 20 70 61 69 72 73 2e  key/value pairs.
17d0: 0a 57 65 20 75 73 75 61 6c 6c 79 20 72 65 66 65  .We usually refe
17e0: 72 20 74 6f 20 74 68 65 73 65 20 6b 65 79 2f 76  r to these key/v
17f0: 61 6c 75 65 20 70 61 69 72 73 20 61 73 20 22 71  alue pairs as "q
1800: 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 73 22  uery parameters"
1810: 2e 0a 5e 4b 65 79 2f 76 61 6c 75 65 20 70 61 69  ..^Key/value pai
1820: 72 73 20 61 72 65 20 73 65 70 61 72 61 74 65 64  rs are separated
1830: 20 62 79 20 61 20 73 69 6e 67 6c 65 20 22 3c 74   by a single "<t
1840: 74 3e 26 61 6d 70 3b 3c 2f 74 74 3e 22 20 63 68  t>&amp;</tt>" ch
1850: 61 72 61 63 74 65 72 2e 0a 5e 54 68 65 20 6b 65  aracter..^The ke
1860: 79 20 63 6f 6d 65 73 20 66 69 72 73 74 20 61 6e  y comes first an
1870: 64 20 69 73 20 73 65 70 61 72 61 74 65 64 20 66  d is separated f
1880: 72 6f 6d 20 74 68 65 20 76 61 6c 75 65 20 62 79  rom the value by
1890: 20 61 20 73 69 6e 67 6c 65 0a 22 3c 74 74 3e 3d   a single."<tt>=
18a0: 3c 2f 74 74 3e 22 20 63 68 61 72 61 63 74 65 72  </tt>" character
18b0: 2e 0a 5e 42 6f 74 68 20 6b 65 79 20 61 6e 64 20  ..^Both key and 
18c0: 76 61 6c 75 65 20 6d 61 79 20 63 6f 6e 74 61 69  value may contai
18d0: 6e 20 3c 62 3e 25 48 48 3c 2f 62 3e 20 65 73 63  n <b>%HH</b> esc
18e0: 61 70 65 20 73 65 71 75 65 6e 63 65 73 2e 3c 2f  ape sequences.</
18f0: 70 3e 0a 0a 3c 70 3e 0a 5e 54 68 65 20 74 65 78  p>..<p>.^The tex
1900: 74 20 6f 66 20 71 75 65 72 79 20 70 61 72 61 6d  t of query param
1910: 65 74 65 72 73 20 69 73 20 61 70 70 65 6e 64 65  eters is appende
1920: 64 20 74 6f 20 74 68 65 20 66 69 6c 65 6e 61 6d  d to the filenam
1930: 65 20 61 72 67 75 6d 65 6e 74 20 6f 66 0a 74 68  e argument of.th
1940: 65 20 78 4f 70 65 6e 20 6d 65 74 68 6f 64 20 6f  e xOpen method o
1950: 66 20 74 68 65 20 5b 56 46 53 5d 2e 0a 5e 41 6e  f the [VFS]..^An
1960: 79 20 25 48 48 20 65 73 63 61 70 65 20 73 65 71  y %HH escape seq
1970: 75 65 6e 63 65 73 20 69 6e 20 74 68 65 20 71 75  uences in the qu
1980: 65 72 79 20 70 61 72 61 6d 65 74 65 72 73 20 61  ery parameters a
1990: 72 65 20 72 65 73 6f 6c 76 65 64 20 70 72 69 6f  re resolved prio
19a0: 72 20 74 6f 0a 62 65 69 6e 67 20 61 70 70 65 6e  r to.being appen
19b0: 64 65 64 20 74 6f 20 74 68 65 20 78 4f 70 65 6e  ded to the xOpen
19c0: 20 66 69 6c 65 6e 61 6d 65 2e 0a 5e 41 20 73 69   filename..^A si
19d0: 6e 67 6c 65 20 7a 65 72 6f 2d 62 79 74 65 20 73  ngle zero-byte s
19e0: 65 70 61 72 61 74 65 73 20 74 68 65 20 78 4f 70  eparates the xOp
19f0: 65 6e 20 66 69 6c 65 6e 61 6d 65 20 61 72 67 75  en filename argu
1a00: 6d 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 6b 65  ment from the ke
1a10: 79 20 6f 66 0a 74 68 65 20 66 69 72 73 74 20 71  y of.the first q
1a20: 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 73 2c  uery parameters,
1a30: 20 65 61 63 68 20 6b 65 79 20 61 6e 64 20 76 61   each key and va
1a40: 6c 75 65 2c 20 61 6e 64 20 65 61 63 68 20 73 75  lue, and each su
1a50: 62 73 65 71 75 65 6e 74 20 6b 65 79 0a 66 72 6f  bsequent key.fro
1a60: 6d 20 74 68 65 20 70 72 69 6f 72 20 76 61 6c 75  m the prior valu
1a70: 65 2e 0a 5e 54 68 65 20 6c 69 73 74 20 6f 66 20  e..^The list of 
1a80: 71 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 73  query parameters
1a90: 20 70 61 72 61 6d 65 74 65 72 73 20 61 70 70 65   parameters appe
1aa0: 6e 64 65 64 20 74 6f 20 74 68 65 20 78 4f 70 65  nded to the xOpe
1ab0: 6e 20 66 69 6c 65 6e 61 6d 65 0a 69 73 20 74 65  n filename.is te
1ac0: 72 6d 69 6e 61 74 65 64 20 62 79 20 61 20 73 69  rminated by a si
1ad0: 6e 67 6c 65 20 7a 65 72 6f 2d 6c 65 6e 67 74 68  ngle zero-length
1ae0: 20 6b 65 79 2e 0a 4e 6f 74 65 20 74 68 61 74 20   key..Note that 
1af0: 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 20 71  the value of a q
1b00: 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 20 63  uery parameter c
1b10: 61 6e 20 62 65 20 61 6e 20 65 6d 70 74 79 20 73  an be an empty s
1b20: 74 72 69 6e 67 2e 0a 3c 2f 70 3e 0a 0a 3c 74 63  tring..</p>..<tc
1b30: 6c 3e 68 64 5f 66 72 61 67 6d 65 6e 74 20 63 6f  l>hd_fragment co
1b40: 72 65 71 70 20 7b 71 75 65 72 79 20 70 61 72 61  reqp {query para
1b50: 6d 65 74 65 72 73 20 77 69 74 68 20 73 70 65 63  meters with spec
1b60: 69 61 6c 20 6d 65 61 6e 69 6e 67 20 74 6f 20 53  ial meaning to S
1b70: 51 4c 69 74 65 7d 3c 2f 74 63 6c 3e 0a 3c 68 32  QLite}</tcl>.<h2
1b80: 3e 33 2e 33 20 52 65 63 6f 67 6e 69 7a 65 64 20  >3.3 Recognized 
1b90: 51 75 65 72 79 20 50 61 72 61 6d 65 74 65 72 73  Query Parameters
1ba0: 3c 2f 68 32 3e 0a 0a 3c 70 3e 0a 53 6f 6d 65 20  </h2>..<p>.Some 
1bb0: 71 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 73  query parameters
1bc0: 20 61 72 65 20 69 6e 74 65 72 70 72 65 74 65 64   are interpreted
1bd0: 20 62 79 20 74 68 65 20 53 51 4c 69 74 65 20 63   by the SQLite c
1be0: 6f 72 65 20 61 6e 64 20 75 73 65 64 20 74 6f 20  ore and used to 
1bf0: 0a 6d 6f 64 69 66 79 20 74 68 65 20 63 68 61 72  .modify the char
1c00: 61 63 74 65 72 69 73 74 69 63 73 20 6f 66 20 74  acteristics of t
1c10: 68 65 20 6e 65 77 20 63 6f 6e 6e 65 63 74 69 6f  he new connectio
1c20: 6e 2e 20 20 5e 41 6c 6c 20 71 75 65 72 79 20 70  n.  ^All query p
1c30: 61 72 61 6d 65 74 65 72 73 0a 61 72 65 20 61 6c  arameters.are al
1c40: 77 61 79 73 20 70 61 73 73 65 64 20 74 68 72 6f  ways passed thro
1c50: 75 67 68 20 69 6e 74 6f 20 74 68 65 20 78 4f 70  ugh into the xOp
1c60: 65 6e 20 6d 65 74 68 6f 64 20 6f 66 20 74 68 65  en method of the
1c70: 20 5b 56 46 53 5d 20 65 76 65 6e 20 69 66 0a 74   [VFS] even if.t
1c80: 68 65 79 20 61 72 65 20 70 72 65 76 69 6f 75 73  hey are previous
1c90: 6c 79 20 72 65 61 64 20 61 6e 64 20 69 6e 74 65  ly read and inte
1ca0: 72 70 72 65 74 65 64 20 62 79 20 74 68 65 20 53  rpreted by the S
1cb0: 51 4c 69 74 65 20 63 6f 72 65 2e 0a 3c 2f 70 3e  QLite core..</p>
1cc0: 0a 0a 3c 70 3e 0a 54 68 65 20 66 6f 6c 6c 6f 77  ..<p>.The follow
1cd0: 69 6e 67 20 71 75 65 72 79 20 70 61 72 61 6d 65  ing query parame
1ce0: 74 65 72 73 20 61 72 65 20 72 65 63 6f 67 6e 69  ters are recogni
1cf0: 7a 65 64 20 62 79 20 53 51 4c 69 74 65 20 61 73  zed by SQLite as
1d00: 20 6f 66 20 76 65 72 73 69 6f 6e 20 33 2e 37 2e   of version 3.7.
1d10: 37 2e 0a 4f 74 68 65 72 20 71 75 65 72 79 20 70  7..Other query p
1d20: 61 72 61 6d 65 74 65 72 73 20 6d 69 67 68 74 20  arameters might 
1d30: 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 69 73  be added to this
1d40: 20 73 65 74 20 69 6e 20 66 75 74 75 72 65 20 72   set in future r
1d50: 65 6c 65 61 73 65 73 2e 0a 3c 2f 70 3e 0a 0a 3c  eleases..</p>..<
1d60: 64 6c 3e 0a 3c 64 74 3e 3c 62 3e 76 66 73 3d 3c  dl>.<dt><b>vfs=<
1d70: 2f 62 3e 3c 69 3e 4e 41 4d 45 3c 2f 69 3e 3c 2f  /b><i>NAME</i></
1d80: 64 74 3e 0a 3c 64 64 3e 3c 70 3e 5e 54 68 69 73  dt>.<dd><p>^This
1d90: 20 71 75 65 72 79 20 70 61 72 61 6d 65 74 65 72   query parameter
1da0: 20 63 61 75 73 65 73 20 74 68 65 20 64 61 74 61   causes the data
1db0: 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  base connection 
1dc0: 74 6f 20 62 65 20 6f 70 65 6e 65 64 0a 75 73 69  to be opened.usi
1dd0: 6e 67 20 74 68 65 20 5b 56 46 53 5d 20 63 61 6c  ng the [VFS] cal
1de0: 6c 65 64 20 3c 69 3e 4e 41 4d 45 3c 2f 69 3e 2e  led <i>NAME</i>.
1df0: 0a 5e 54 68 65 20 6f 70 65 6e 20 61 74 74 65 6d  .^The open attem
1e00: 70 74 20 66 61 69 6c 73 20 69 66 20 3c 69 3e 4e  pt fails if <i>N
1e10: 41 4d 45 3c 2f 69 3e 20 69 73 20 6e 6f 74 20 74  AME</i> is not t
1e20: 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 5b 56 46  he name of a [VF
1e30: 53 5d 20 74 68 61 74 0a 69 73 20 62 75 69 6c 74  S] that.is built
1e40: 20 69 6e 74 6f 20 53 51 4c 69 74 65 20 6f 72 20   into SQLite or 
1e50: 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 70 72  that has been pr
1e60: 65 76 69 6f 75 73 6c 79 20 72 65 67 69 73 74 65  eviously registe
1e70: 72 65 64 20 75 73 69 6e 67 0a 5b 73 71 6c 69 74  red using.[sqlit
1e80: 65 33 5f 76 66 73 5f 72 65 67 69 73 74 65 72 28  e3_vfs_register(
1e90: 29 5d 2e 3c 2f 64 64 3e 0a 0a 3c 64 74 3e 3c 62  )].</dd>..<dt><b
1ea0: 3e 6d 6f 64 65 3d 72 6f 3c 62 72 3e 6d 6f 64 65  >mode=ro<br>mode
1eb0: 3d 72 77 3c 62 72 3e 6d 6f 64 65 3d 72 77 63 3c  =rw<br>mode=rwc<
1ec0: 2f 62 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e  /b></dt>.<dd><p>
1ed0: 5e 54 68 65 73 65 20 71 75 65 72 79 20 70 61 72  ^These query par
1ee0: 61 6d 65 74 65 72 73 20 64 65 74 65 72 6d 69 6e  ameters determin
1ef0: 65 20 69 66 20 74 68 65 20 6e 65 77 20 64 61 74  e if the new dat
1f00: 61 62 61 73 65 20 69 73 20 6f 70 65 6e 65 64 0a  abase is opened.
1f10: 72 65 61 64 2d 6f 6e 6c 79 2c 20 72 65 61 64 2d  read-only, read-
1f20: 77 72 69 74 65 2c 20 6f 72 20 72 65 61 64 2d 77  write, or read-w
1f30: 72 69 74 65 20 61 6e 64 20 63 72 65 61 74 65 64  rite and created
1f40: 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20   if it does not 
1f50: 65 78 69 73 74 2c 0a 72 65 73 70 65 63 74 69 76  exist,.respectiv
1f60: 65 6c 79 2e 0a 3c 2f 64 64 3e 0a 0a 3c 64 74 3e  ely..</dd>..<dt>
1f70: 3c 62 3e 63 61 63 68 65 3d 73 68 61 72 65 64 3c  <b>cache=shared<
1f80: 62 72 3e 63 61 63 68 65 3d 70 72 69 76 61 74 65  br>cache=private
1f90: 3c 2f 62 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70  </b></dt>.<dd><p
1fa0: 3e 5e 54 68 65 73 65 20 71 75 65 72 79 20 70 61  >^These query pa
1fb0: 72 61 6d 65 74 65 72 73 20 64 65 74 65 72 6d 69  rameters determi
1fc0: 6e 65 20 69 66 20 74 68 65 20 6e 65 77 20 64 61  ne if the new da
1fd0: 74 61 62 61 73 65 20 69 73 20 6f 70 65 6e 65 64  tabase is opened
1fe0: 0a 75 73 69 6e 67 20 5b 73 68 61 72 65 64 20 63  .using [shared c
1ff0: 61 63 68 65 20 6d 6f 64 65 5d 20 6f 72 20 77 69  ache mode] or wi
2000: 74 68 20 61 20 70 72 69 76 61 74 65 20 63 61 63  th a private cac
2010: 68 65 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79  he, respectively
2020: 2e 0a 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e 0a 0a 3c  ..</dd>.</dl>..<
2030: 68 31 3e 34 2e 30 20 53 65 65 20 41 6c 73 6f 3c  h1>4.0 See Also<
2040: 2f 68 31 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 20  /h1>..<ul>.<li> 
2050: 5b 55 52 49 20 66 69 6c 65 6e 61 6d 65 73 20 69  [URI filenames i
2060: 6e 20 73 71 6c 69 74 65 33 5f 6f 70 65 6e 28 29  n sqlite3_open()
2070: 5d 0a 3c 6c 69 3e 20 5b 55 52 49 20 66 69 6c 65  ].<li> [URI file
2080: 6e 61 6d 65 20 65 78 61 6d 70 6c 65 73 5d 0a 3c  name examples].<
2090: 2f 75 6c 3e 0a                                   /ul>.