Documentation Source Text

Hex Artifact Content
Login

Artifact 314fee0021e3027a40ee8462b71665eda4ac1f7a:


0000: 3c 74 63 6c 3e 68 64 5f 6b 65 79 77 6f 72 64 73  <tcl>hd_keywords
0010: 20 7b 2a 71 75 69 63 6b 73 74 61 72 74 7d 20 7b   {*quickstart} {
0020: 51 75 69 63 6b 20 53 74 61 72 74 20 47 75 69 64  Quick Start Guid
0030: 65 7d 3c 2f 74 63 6c 3e 0a 3c 74 69 74 6c 65 3e  e}</tcl>.<title>
0040: 53 51 4c 69 74 65 20 49 6e 20 35 20 4d 69 6e 75  SQLite In 5 Minu
0050: 74 65 73 20 4f 72 20 4c 65 73 73 3c 2f 74 69 74  tes Or Less</tit
0060: 6c 65 3e 0a 0a 3c 70 3e 48 65 72 65 20 69 73 20  le>..<p>Here is 
0070: 77 68 61 74 20 79 6f 75 20 64 6f 20 74 6f 20 73  what you do to s
0080: 74 61 72 74 20 65 78 70 65 72 69 6d 65 6e 74 69  tart experimenti
0090: 6e 67 20 77 69 74 68 20 53 51 4c 69 74 65 20 77  ng with SQLite w
00a0: 69 74 68 6f 75 74 20 68 61 76 69 6e 67 0a 74 6f  ithout having.to
00b0: 20 64 6f 20 61 20 6c 6f 74 20 6f 66 20 74 65 64   do a lot of ted
00c0: 69 6f 75 73 20 72 65 61 64 69 6e 67 20 61 6e 64  ious reading and
00d0: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 3c   configuration:<
00e0: 2f 70 3e 0a 0a 3c 68 32 3e 44 6f 77 6e 6c 6f 61  /p>..<h2>Downloa
00f0: 64 20 54 68 65 20 43 6f 64 65 3c 2f 68 32 3e 0a  d The Code</h2>.
0100: 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 70 3e 47 65 74  .<ul>.<li><p>Get
0110: 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 70   a copy of the p
0120: 72 65 62 75 69 6c 74 20 62 69 6e 61 72 69 65 73  rebuilt binaries
0130: 20 66 6f 72 20 79 6f 75 72 20 6d 61 63 68 69 6e   for your machin
0140: 65 2c 20 6f 72 20 67 65 74 20 61 20 63 6f 70 79  e, or get a copy
0150: 0a 6f 66 20 74 68 65 20 73 6f 75 72 63 65 73 20  .of the sources 
0160: 61 6e 64 20 63 6f 6d 70 69 6c 65 20 74 68 65 6d  and compile them
0170: 20 79 6f 75 72 73 65 6c 66 2e 20 20 56 69 73 69   yourself.  Visi
0180: 74 0a 74 68 65 20 3c 61 20 68 72 65 66 3d 22 64  t.the <a href="d
0190: 6f 77 6e 6c 6f 61 64 2e 68 74 6d 6c 22 3e 64 6f  ownload.html">do
01a0: 77 6e 6c 6f 61 64 3c 2f 61 3e 20 70 61 67 65 20  wnload</a> page 
01b0: 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61  for more informa
01c0: 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c  tion.</p></li>.<
01d0: 2f 75 6c 3e 0a 0a 3c 68 32 3e 43 72 65 61 74 65  /ul>..<h2>Create
01e0: 20 41 20 4e 65 77 20 44 61 74 61 62 61 73 65 3c   A New Database<
01f0: 2f 68 32 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c  /h2>..<ul>.<li><
0200: 70 3e 41 74 20 61 20 73 68 65 6c 6c 20 6f 72 20  p>At a shell or 
0210: 44 4f 53 20 70 72 6f 6d 70 74 2c 20 65 6e 74 65  DOS prompt, ente
0220: 72 3a 20 22 3c 62 3e 73 71 6c 69 74 65 33 20 74  r: "<b>sqlite3 t
0230: 65 73 74 2e 64 62 3c 2f 62 3e 22 2e 20 20 54 68  est.db</b>".  Th
0240: 69 73 20 77 69 6c 6c 0a 63 72 65 61 74 65 20 61  is will.create a
0250: 20 6e 65 77 20 64 61 74 61 62 61 73 65 20 6e 61   new database na
0260: 6d 65 64 20 22 74 65 73 74 2e 64 62 22 2e 20 20  med "test.db".  
0270: 28 59 6f 75 20 63 61 6e 20 75 73 65 20 61 20 64  (You can use a d
0280: 69 66 66 65 72 65 6e 74 20 6e 61 6d 65 20 69 66  ifferent name if
0290: 0a 79 6f 75 20 6c 69 6b 65 2e 29 3c 2f 70 3e 3c  .you like.)</p><
02a0: 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 45 6e 74 65  /li>.<li><p>Ente
02b0: 72 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 73 20 61  r SQL commands a
02c0: 74 20 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 20  t the prompt to 
02d0: 63 72 65 61 74 65 20 61 6e 64 20 70 6f 70 75 6c  create and popul
02e0: 61 74 65 20 74 68 65 0a 6e 65 77 20 64 61 74 61  ate the.new data
02f0: 62 61 73 65 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c  base.</p></li>.<
0300: 6c 69 3e 3c 70 3e 41 64 64 69 74 69 6f 6e 61 6c  li><p>Additional
0310: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 69   documentation i
0320: 73 20 61 76 61 69 6c 61 62 6c 65 20 5b 43 4c 49  s available [CLI
0330: 20 7c 20 68 65 72 65 5d 2e 3c 2f 6c 69 3e 0a 3c   | here].</li>.<
0340: 2f 75 6c 3e 0a 0a 3c 68 32 3e 57 72 69 74 65 20  /ul>..<h2>Write 
0350: 50 72 6f 67 72 61 6d 73 20 54 68 61 74 20 55 73  Programs That Us
0360: 65 20 53 51 4c 69 74 65 3c 2f 68 32 3e 0a 0a 3c  e SQLite</h2>..<
0370: 75 6c 3e 0a 3c 6c 69 3e 3c 70 3e 42 65 6c 6f 77  ul>.<li><p>Below
0380: 20 69 73 20 61 20 73 69 6d 70 6c 65 20 0a 5b 68   is a simple .[h
0390: 74 74 70 3a 2f 2f 77 77 77 2e 74 63 6c 2d 6c 61  ttp://www.tcl-la
03a0: 6e 67 2e 6f 72 67 20 7c 20 54 43 4c 20 70 72 6f  ng.org | TCL pro
03b0: 67 72 61 6d 5d 20 74 68 61 74 20 64 65 6d 6f 6e  gram] that demon
03c0: 73 74 72 61 74 65 73 20 68 6f 77 20 74 6f 20 75  strates how to u
03d0: 73 65 0a 74 68 65 20 54 43 4c 20 69 6e 74 65 72  se.the TCL inter
03e0: 66 61 63 65 20 74 6f 20 53 51 4c 69 74 65 2e 20  face to SQLite. 
03f0: 20 54 68 65 20 70 72 6f 67 72 61 6d 20 65 78 65   The program exe
0400: 63 75 74 65 73 20 74 68 65 20 53 51 4c 20 73 74  cutes the SQL st
0410: 61 74 65 6d 65 6e 74 73 0a 67 69 76 65 6e 20 61  atements.given a
0420: 73 20 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67  s the second arg
0430: 75 6d 65 6e 74 20 6f 6e 20 74 68 65 20 64 61 74  ument on the dat
0440: 61 62 61 73 65 20 64 65 66 69 6e 65 64 20 62 79  abase defined by
0450: 20 74 68 65 20 66 69 72 73 74 0a 61 72 67 75 6d   the first.argum
0460: 65 6e 74 2e 20 20 54 68 65 20 63 6f 6d 6d 61 6e  ent.  The comman
0470: 64 73 20 74 6f 20 77 61 74 63 68 20 66 6f 72 20  ds to watch for 
0480: 61 72 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  are the <b>sqlit
0490: 65 33 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 0a 6f  e3</b> command.o
04a0: 6e 20 6c 69 6e 65 20 37 20 77 68 69 63 68 20 6f  n line 7 which o
04b0: 70 65 6e 73 20 61 6e 20 53 51 4c 69 74 65 20 64  pens an SQLite d
04c0: 61 74 61 62 61 73 65 20 61 6e 64 20 63 72 65 61  atabase and crea
04d0: 74 65 73 0a 61 20 6e 65 77 20 6f 62 6a 65 63 74  tes.a new object
04e0: 20 6e 61 6d 65 64 20 22 3c 62 3e 64 62 3c 2f 62   named "<b>db</b
04f0: 3e 22 20 74 6f 20 61 63 63 65 73 73 20 74 68 61  >" to access tha
0500: 74 20 64 61 74 61 62 61 73 65 2c 20 74 68 65 0a  t database, the.
0510: 75 73 65 20 6f 66 20 74 68 65 20 5b 65 76 61 6c  use of the [eval
0520: 20 6d 65 74 68 6f 64 5d 20 6f 6e 20 74 68 65 20   method] on the 
0530: 3c 62 3e 64 62 3c 2f 62 3e 20 6f 62 6a 65 63 74  <b>db</b> object
0540: 20 6f 6e 20 6c 69 6e 65 20 38 20 74 6f 20 72 75   on line 8 to ru
0550: 6e 0a 53 51 4c 20 63 6f 6d 6d 61 6e 64 73 20 61  n.SQL commands a
0560: 67 61 69 6e 73 74 20 74 68 65 20 64 61 74 61 62  gainst the datab
0570: 61 73 65 2c 20 61 6e 64 20 74 68 65 20 63 6c 6f  ase, and the clo
0580: 73 69 6e 67 20 6f 66 20 74 68 65 20 64 61 74 61  sing of the data
0590: 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 0a  base connection.
05a0: 6f 6e 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65  on the last line
05b0: 20 6f 66 20 74 68 65 20 73 63 72 69 70 74 2e 3c   of the script.<
05c0: 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65  /p>..<blockquote
05d0: 3e 3c 70 72 65 3e 0a 30 31 20 20 23 21 2f 75 73  ><pre>.01  #!/us
05e0: 72 2f 62 69 6e 2f 74 63 6c 73 68 0a 30 32 20 20  r/bin/tclsh.02  
05f0: 69 66 20 7b 24 61 72 67 63 21 3d 32 7d 20 7b 0a  if {$argc!=2} {.
0600: 30 33 20 20 20 20 70 75 74 73 20 73 74 64 65 72  03    puts stder
0610: 72 20 22 55 73 61 67 65 3a 20 25 73 20 44 41 54  r "Usage: %s DAT
0620: 41 42 41 53 45 20 53 51 4c 2d 53 54 41 54 45 4d  ABASE SQL-STATEM
0630: 45 4e 54 22 0a 30 34 20 20 20 20 65 78 69 74 20  ENT".04    exit 
0640: 31 0a 30 35 20 20 7d 0a 30 36 20 20 70 61 63 6b  1.05  }.06  pack
0650: 61 67 65 20 72 65 71 75 69 72 65 20 73 71 6c 69  age require sqli
0660: 74 65 33 0a 30 37 20 20 3c 62 3e 73 71 6c 69 74  te3.07  <b>sqlit
0670: 65 33 3c 2f 62 3e 20 64 62 20 26 23 39 31 3b 6c  e3</b> db &#91;l
0680: 69 6e 64 65 78 20 24 61 72 67 76 20 30 5d 0a 30  index $argv 0].0
0690: 38 20 20 3c 62 3e 64 62 3c 2f 62 3e 20 65 76 61  8  <b>db</b> eva
06a0: 6c 20 26 23 39 31 3b 6c 69 6e 64 65 78 20 24 61  l &#91;lindex $a
06b0: 72 67 76 20 31 5d 20 78 20 7b 0a 30 39 20 20 20  rgv 1] x {.09   
06c0: 20 66 6f 72 65 61 63 68 20 76 20 24 78 28 2a 29   foreach v $x(*)
06d0: 20 7b 0a 31 30 20 20 20 20 20 20 70 75 74 73 20   {.10      puts 
06e0: 22 24 76 20 3d 20 24 78 28 24 76 29 22 0a 31 31  "$v = $x($v)".11
06f0: 20 20 20 20 7d 0a 31 32 20 20 20 20 70 75 74 73      }.12    puts
0700: 20 22 22 0a 31 33 20 20 7d 0a 31 34 20 20 3c 62   "".13  }.14  <b
0710: 3e 64 62 3c 2f 62 3e 20 63 6c 6f 73 65 0a 3c 2f  >db</b> close.</
0720: 70 72 65 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65  pre></blockquote
0730: 3e 0a 3c 2f 6c 69 3e 0a 0a 3c 6c 69 3e 3c 70 3e  >.</li>..<li><p>
0740: 42 65 6c 6f 77 20 69 73 20 61 20 73 69 6d 70 6c  Below is a simpl
0750: 65 20 43 20 70 72 6f 67 72 61 6d 20 74 68 61 74  e C program that
0760: 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 20 68 6f   demonstrates ho
0770: 77 20 74 6f 20 75 73 65 0a 74 68 65 20 5b 63 61  w to use.the [ca
0780: 70 69 33 72 65 66 20 7c 20 43 2f 43 2b 2b 20 69  pi3ref | C/C++ i
0790: 6e 74 65 72 66 61 63 65 5d 20 74 6f 20 53 51 4c  nterface] to SQL
07a0: 69 74 65 2e 20 20 54 68 65 20 6e 61 6d 65 20 6f  ite.  The name o
07b0: 66 20 61 20 64 61 74 61 62 61 73 65 20 69 73 20  f a database is 
07c0: 67 69 76 65 6e 20 62 79 0a 74 68 65 20 66 69 72  given by.the fir
07d0: 73 74 20 61 72 67 75 6d 65 6e 74 20 61 6e 64 20  st argument and 
07e0: 74 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d  the second argum
07f0: 65 6e 74 20 69 73 20 6f 6e 65 20 6f 72 20 6d 6f  ent is one or mo
0800: 72 65 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74  re SQL statement
0810: 73 0a 74 6f 20 65 78 65 63 75 74 65 20 61 67 61  s.to execute aga
0820: 69 6e 73 74 20 74 68 65 20 64 61 74 61 62 61 73  inst the databas
0830: 65 2e 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e  e.  The function
0840: 20 63 61 6c 6c 73 20 74 6f 20 70 61 79 20 61 74   calls to pay at
0850: 74 65 6e 74 69 6f 6e 0a 74 6f 20 68 65 72 65 20  tention.to here 
0860: 61 72 65 20 74 68 65 20 63 61 6c 6c 20 74 6f 20  are the call to 
0870: 5b 73 71 6c 69 74 65 33 5f 6f 70 65 6e 28 29 5d  [sqlite3_open()]
0880: 20 6f 6e 20 6c 69 6e 65 20 32 32 20 77 68 69 63   on line 22 whic
0890: 68 20 6f 70 65 6e 73 0a 74 68 65 20 64 61 74 61  h opens.the data
08a0: 62 61 73 65 2c 20 5b 73 71 6c 69 74 65 33 5f 65  base, [sqlite3_e
08b0: 78 65 63 28 29 5d 20 6f 6e 20 6c 69 6e 65 20 32  xec()] on line 2
08c0: 38 20 74 68 61 74 20 65 78 65 63 75 74 65 73 20  8 that executes 
08d0: 53 51 4c 0a 63 6f 6d 6d 61 6e 64 73 20 61 67 61  SQL.commands aga
08e0: 69 6e 73 74 20 74 68 65 20 64 61 74 61 62 61 73  inst the databas
08f0: 65 2c 20 61 6e 64 20 5b 73 71 6c 69 74 65 33 5f  e, and [sqlite3_
0900: 63 6c 6f 73 65 28 29 5d 20 6f 6e 20 6c 69 6e 65  close()] on line
0910: 20 33 33 0a 74 68 61 74 20 63 6c 6f 73 65 73 20   33.that closes 
0920: 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e  the database con
0930: 6e 65 63 74 69 6f 6e 2e 3c 2f 70 3e 0a 0a 3c 70  nection.</p>..<p
0940: 3e 53 65 65 20 61 6c 73 6f 20 74 68 65 20 5b 63  >See also the [c
0950: 69 6e 74 72 6f 20 7c 20 49 6e 74 72 6f 64 75 63  intro | Introduc
0960: 74 69 6f 6e 20 54 6f 20 54 68 65 20 53 51 4c 69  tion To The SQLi
0970: 74 65 20 43 2f 43 2b 2b 20 49 6e 74 65 72 66 61  te C/C++ Interfa
0980: 63 65 5d 20 66 6f 72 0a 61 6e 20 69 6e 74 72 6f  ce] for.an intro
0990: 64 75 63 74 6f 72 79 20 6f 76 65 72 76 69 65 77  ductory overview
09a0: 20 61 6e 64 20 72 6f 61 64 6d 61 70 20 74 6f 20   and roadmap to 
09b0: 74 68 65 20 64 6f 7a 65 6e 73 20 6f 66 20 53 51  the dozens of SQ
09c0: 4c 69 74 65 20 69 6e 74 65 72 66 61 63 65 0a 66  Lite interface.f
09d0: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 70 3e 0a 0a 3c  unctions.</p>..<
09e0: 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c 70 72 65 3e  blockquote><pre>
09f0: 0a 30 31 20 20 23 69 6e 63 6c 75 64 65 20 26 6c  .01  #include &l
0a00: 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 30 32  t;stdio.h&gt;.02
0a10: 20 20 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73    #include &lt;s
0a20: 71 6c 69 74 65 33 2e 68 26 67 74 3b 0a 30 33 20  qlite3.h&gt;.03 
0a30: 20 0a 30 34 20 20 73 74 61 74 69 63 20 69 6e 74   .04  static int
0a40: 20 63 61 6c 6c 62 61 63 6b 28 76 6f 69 64 20 2a   callback(void *
0a50: 4e 6f 74 55 73 65 64 2c 20 69 6e 74 20 61 72 67  NotUsed, int arg
0a60: 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 2c 20  c, char **argv, 
0a70: 63 68 61 72 20 2a 2a 61 7a 43 6f 6c 4e 61 6d 65  char **azColName
0a80: 29 7b 0a 30 35 20 20 20 20 69 6e 74 20 69 3b 0a  ){.05    int i;.
0a90: 30 36 20 20 20 20 66 6f 72 28 69 3d 30 3b 20 69  06    for(i=0; i
0aa0: 26 6c 74 3b 61 72 67 63 3b 20 69 2b 2b 29 7b 0a  &lt;argc; i++){.
0ab0: 30 37 20 20 20 20 20 20 70 72 69 6e 74 66 28 22  07      printf("
0ac0: 25 73 20 3d 20 25 73 5c 6e 22 2c 20 61 7a 43 6f  %s = %s\n", azCo
0ad0: 6c 4e 61 6d 65 26 23 39 31 3b 69 5d 2c 20 61 72  lName&#91;i], ar
0ae0: 67 76 26 23 39 31 3b 69 5d 20 3f 20 61 72 67 76  gv&#91;i] ? argv
0af0: 26 23 39 31 3b 69 5d 20 3a 20 22 4e 55 4c 4c 22  &#91;i] : "NULL"
0b00: 29 3b 0a 30 38 20 20 20 20 7d 0a 30 39 20 20 20  );.08    }.09   
0b10: 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 0a 31   printf("\n");.1
0b20: 30 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 31  0    return 0;.1
0b30: 31 20 20 7d 0a 31 32 20 20 0a 31 33 20 20 69 6e  1  }.12  .13  in
0b40: 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c  t main(int argc,
0b50: 20 63 68 61 72 20 2a 2a 61 72 67 76 29 7b 0a 31   char **argv){.1
0b60: 34 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 33 3c  4    <b>sqlite3<
0b70: 2f 62 3e 20 2a 64 62 3b 0a 31 35 20 20 20 20 63  /b> *db;.15    c
0b80: 68 61 72 20 2a 7a 45 72 72 4d 73 67 20 3d 20 30  har *zErrMsg = 0
0b90: 3b 0a 31 36 20 20 20 20 69 6e 74 20 72 63 3b 0a  ;.16    int rc;.
0ba0: 31 37 20 20 0a 31 38 20 20 20 20 69 66 28 20 61  17  .18    if( a
0bb0: 72 67 63 21 3d 33 20 29 7b 0a 31 39 20 20 20 20  rgc!=3 ){.19    
0bc0: 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72    fprintf(stderr
0bd0: 2c 20 22 55 73 61 67 65 3a 20 25 73 20 44 41 54  , "Usage: %s DAT
0be0: 41 42 41 53 45 20 53 51 4c 2d 53 54 41 54 45 4d  ABASE SQL-STATEM
0bf0: 45 4e 54 5c 6e 22 2c 20 61 72 67 76 26 23 39 31  ENT\n", argv&#91
0c00: 3b 30 5d 29 3b 0a 32 30 20 20 20 20 20 20 72 65  ;0]);.20      re
0c10: 74 75 72 6e 28 31 29 3b 0a 32 31 20 20 20 20 7d  turn(1);.21    }
0c20: 0a 32 32 20 20 20 20 72 63 20 3d 20 3c 62 3e 73  .22    rc = <b>s
0c30: 71 6c 69 74 65 33 5f 6f 70 65 6e 3c 2f 62 3e 28  qlite3_open</b>(
0c40: 61 72 67 76 26 23 39 31 3b 31 5d 2c 20 26 64 62  argv&#91;1], &db
0c50: 29 3b 0a 32 33 20 20 20 20 69 66 28 20 72 63 20  );.23    if( rc 
0c60: 29 7b 0a 32 34 20 20 20 20 20 20 66 70 72 69 6e  ){.24      fprin
0c70: 74 66 28 73 74 64 65 72 72 2c 20 22 43 61 6e 27  tf(stderr, "Can'
0c80: 74 20 6f 70 65 6e 20 64 61 74 61 62 61 73 65 3a  t open database:
0c90: 20 25 73 5c 6e 22 2c 20 73 71 6c 69 74 65 33 5f   %s\n", sqlite3_
0ca0: 65 72 72 6d 73 67 28 64 62 29 29 3b 0a 32 35 20  errmsg(db));.25 
0cb0: 20 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 33 5f       <b>sqlite3_
0cc0: 63 6c 6f 73 65 3c 2f 62 3e 28 64 62 29 3b 0a 32  close</b>(db);.2
0cd0: 36 20 20 20 20 20 20 72 65 74 75 72 6e 28 31 29  6      return(1)
0ce0: 3b 0a 32 37 20 20 20 20 7d 0a 32 38 20 20 20 20  ;.27    }.28    
0cf0: 72 63 20 3d 20 3c 62 3e 73 71 6c 69 74 65 33 5f  rc = <b>sqlite3_
0d00: 65 78 65 63 3c 2f 62 3e 28 64 62 2c 20 61 72 67  exec</b>(db, arg
0d10: 76 26 23 39 31 3b 32 5d 2c 20 63 61 6c 6c 62 61  v&#91;2], callba
0d20: 63 6b 2c 20 30 2c 20 26 7a 45 72 72 4d 73 67 29  ck, 0, &zErrMsg)
0d30: 3b 0a 32 39 20 20 20 20 69 66 28 20 72 63 21 3d  ;.29    if( rc!=
0d40: 53 51 4c 49 54 45 5f 4f 4b 20 29 7b 0a 33 30 20  SQLITE_OK ){.30 
0d50: 20 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64       fprintf(std
0d60: 65 72 72 2c 20 22 53 51 4c 20 65 72 72 6f 72 3a  err, "SQL error:
0d70: 20 25 73 5c 6e 22 2c 20 7a 45 72 72 4d 73 67 29   %s\n", zErrMsg)
0d80: 3b 0a 33 31 20 20 20 20 20 20 3c 62 3e 73 71 6c  ;.31      <b>sql
0d90: 69 74 65 33 5f 66 72 65 65 3c 2f 62 3e 28 7a 45  ite3_free</b>(zE
0da0: 72 72 4d 73 67 29 3b 0a 33 32 20 20 20 20 7d 0a  rrMsg);.32    }.
0db0: 33 33 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 33  33    <b>sqlite3
0dc0: 5f 63 6c 6f 73 65 3c 2f 62 3e 28 64 62 29 3b 0a  _close</b>(db);.
0dd0: 33 34 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a  34    return 0;.
0de0: 33 35 20 20 7d 0a 3c 2f 70 72 65 3e 3c 2f 62 6c  35  }.</pre></bl
0df0: 6f 63 6b 71 75 6f 74 65 3e 0a 3c 70 3e 53 65 65  ockquote>.<p>See
0e00: 20 74 68 65 20 5b 48 6f 77 20 54 6f 20 43 6f 6d   the [How To Com
0e10: 70 69 6c 65 20 53 51 4c 69 74 65 5d 20 64 6f 63  pile SQLite] doc
0e20: 75 6d 65 6e 74 20 66 6f 72 20 69 6e 73 74 72 75  ument for instru
0e30: 63 74 69 6f 6e 73 20 61 6e 64 20 68 69 6e 74 73  ctions and hints
0e40: 20 6f 6e 0a 68 6f 77 20 74 6f 20 63 6f 6d 70 69   on.how to compi
0e50: 6c 65 20 74 68 65 20 70 72 6f 67 72 61 6d 20 73  le the program s
0e60: 68 6f 77 6e 20 61 62 6f 76 65 2e 0a 3c 2f 6c 69  hown above..</li
0e70: 3e 0a 3c 2f 75 6c 3e 0a                          >.</ul>.