/ Hex Artifact Content
Login

Artifact 8867d76ddd416d2fbd41e4cb3de8efa9cef105a5:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 54 63 6c  #.# Run this Tcl
0010: 20 73 63 72 69 70 74 20 74 6f 20 67 65 6e 65 72   script to gener
0020: 61 74 65 20 74 68 65 20 73 71 6c 69 74 65 2e 68  ate the sqlite.h
0030: 74 6d 6c 20 66 69 6c 65 2e 0a 23 0a 73 65 74 20  tml file..#.set 
0040: 72 63 73 69 64 20 7b 24 49 64 3a 20 63 5f 69 6e  rcsid {$Id: c_in
0050: 74 65 72 66 61 63 65 2e 74 63 6c 2c 76 20 31 2e  terface.tcl,v 1.
0060: 33 20 32 30 30 30 2f 30 36 2f 30 32 20 31 33 3a  3 2000/06/02 13:
0070: 32 38 3a 30 30 20 64 72 68 20 45 78 70 20 24 7d  28:00 drh Exp $}
0080: 0a 0a 70 75 74 73 20 7b 3c 68 74 6d 6c 3e 0a 3c  ..puts {<html>.<
0090: 68 65 61 64 3e 0a 20 20 3c 74 69 74 6c 65 3e 54  head>.  <title>T
00a0: 68 65 20 43 20 6c 61 6e 67 75 61 67 65 20 69 6e  he C language in
00b0: 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 53  terface to the S
00c0: 51 4c 69 74 65 20 6c 69 62 72 61 72 79 3c 2f 74  QLite library</t
00d0: 69 74 6c 65 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62  itle>.</head>.<b
00e0: 6f 64 79 20 62 67 63 6f 6c 6f 72 3d 77 68 69 74  ody bgcolor=whit
00f0: 65 3e 0a 3c 68 31 20 61 6c 69 67 6e 3d 63 65 6e  e>.<h1 align=cen
0100: 74 65 72 3e 0a 54 68 65 20 43 20 6c 61 6e 67 75  ter>.The C langu
0110: 61 67 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f  age interface to
0120: 20 74 68 65 20 53 51 4c 69 74 65 20 6c 69 62 72   the SQLite libr
0130: 61 72 79 0a 3c 2f 68 31 3e 7d 0a 70 75 74 73 20  ary.</h1>}.puts 
0140: 22 3c 70 20 61 6c 69 67 6e 3d 63 65 6e 74 65 72  "<p align=center
0150: 3e 0a 28 54 68 69 73 20 70 61 67 65 20 77 61 73  >.(This page was
0160: 20 6c 61 73 74 20 6d 6f 64 69 66 69 65 64 20 6f   last modified o
0170: 6e 20 5b 6c 72 61 6e 67 65 20 24 72 63 73 69 64  n [lrange $rcsid
0180: 20 33 20 34 5d 20 47 4d 54 29 0a 3c 2f 70 3e 22   3 4] GMT).</p>"
0190: 0a 0a 70 75 74 73 20 7b 0a 3c 70 3e 54 68 65 20  ..puts {.<p>The 
01a0: 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 20 69  SQLite library i
01b0: 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 62 65  s designed to be
01c0: 20 76 65 72 79 20 65 61 73 79 20 74 6f 20 75 73   very easy to us
01d0: 65 20 66 72 6f 6d 0a 61 20 43 20 6f 72 20 43 2b  e from.a C or C+
01e0: 2b 20 70 72 6f 67 72 61 6d 2e 20 20 54 68 69 73  + program.  This
01f0: 20 64 6f 63 75 6d 65 6e 74 20 67 69 76 65 73 20   document gives 
0200: 61 6e 20 6f 76 65 72 76 69 65 77 20 6f 66 20 74  an overview of t
0210: 68 65 20 43 2f 43 2b 2b 0a 70 72 6f 67 72 61 6d  he C/C++.program
0220: 6d 69 6e 67 20 69 6e 74 65 72 66 61 63 65 2e 3c  ming interface.<
0230: 2f 70 3e 0a 0a 3c 68 32 3e 54 68 65 20 41 50 49  /p>..<h2>The API
0240: 3c 2f 68 32 3e 0a 0a 3c 70 3e 54 68 65 20 69 6e  </h2>..<p>The in
0250: 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 53  terface to the S
0260: 51 4c 69 74 65 20 6c 69 62 72 61 72 79 20 63 6f  QLite library co
0270: 6e 73 69 73 74 73 20 6f 66 20 34 20 66 75 6e 63  nsists of 4 func
0280: 74 69 6f 6e 73 2c 0a 6f 6e 65 20 6f 70 61 71 75  tions,.one opaqu
0290: 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65  e data structure
02a0: 2c 20 61 6e 64 20 73 6f 6d 65 20 63 6f 6e 73 74  , and some const
02b0: 61 6e 74 73 20 75 73 65 64 20 61 73 20 72 65 74  ants used as ret
02c0: 75 72 6e 0a 76 61 6c 75 65 73 20 66 72 6f 6d 20  urn.values from 
02d0: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3a 3c 2f  sqlite_exec():</
02e0: 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e  p>..<blockquote>
02f0: 3c 70 72 65 3e 0a 74 79 70 65 64 65 66 20 73 74  <pre>.typedef st
0300: 72 75 63 74 20 73 71 6c 69 74 65 20 73 71 6c 69  ruct sqlite sqli
0310: 74 65 3b 0a 0a 73 71 6c 69 74 65 20 2a 73 71 6c  te;..sqlite *sql
0320: 69 74 65 5f 6f 70 65 6e 28 63 6f 6e 73 74 20 63  ite_open(const c
0330: 68 61 72 20 2a 66 69 6c 65 6e 61 6d 65 2c 20 69  har *filename, i
0340: 6e 74 20 6d 6f 64 65 2c 20 63 68 61 72 20 2a 2a  nt mode, char **
0350: 65 72 72 6d 73 67 29 3b 0a 0a 76 6f 69 64 20 73  errmsg);..void s
0360: 71 6c 69 74 65 5f 63 6c 6f 73 65 28 73 71 6c 69  qlite_close(sqli
0370: 74 65 2a 29 3b 0a 0a 69 6e 74 20 73 71 6c 69 74  te*);..int sqlit
0380: 65 5f 65 78 65 63 28 0a 20 20 73 71 6c 69 74 65  e_exec(.  sqlite
0390: 2a 2c 0a 20 20 63 68 61 72 20 2a 73 71 6c 2c 0a  *,.  char *sql,.
03a0: 20 20 69 6e 74 20 28 2a 29 28 76 6f 69 64 2a 2c    int (*)(void*,
03b0: 69 6e 74 2c 63 68 61 72 2a 2a 2c 63 68 61 72 2a  int,char**,char*
03c0: 2a 29 2c 0a 20 20 76 6f 69 64 2a 2c 0a 20 20 63  *),.  void*,.  c
03d0: 68 61 72 20 2a 2a 65 72 72 6d 73 67 0a 29 3b 0a  har **errmsg.);.
03e0: 0a 69 6e 74 20 73 71 6c 69 74 65 5f 63 6f 6d 70  .int sqlite_comp
03f0: 6c 65 74 65 28 63 6f 6e 73 74 20 63 68 61 72 20  lete(const char 
0400: 2a 73 71 6c 29 3b 0a 0a 23 64 65 66 69 6e 65 20  *sql);..#define 
0410: 53 51 4c 49 54 45 5f 4f 4b 20 20 20 20 20 20 20  SQLITE_OK       
0420: 20 30 20 20 20 20 2f 2a 20 53 75 63 63 65 73 73   0    /* Success
0430: 66 75 6c 20 72 65 73 75 6c 74 20 2a 2f 0a 23 64  ful result */.#d
0440: 65 66 69 6e 65 20 53 51 4c 49 54 45 5f 49 4e 54  efine SQLITE_INT
0450: 45 52 4e 41 4c 20 20 31 20 20 20 20 2f 2a 20 41  ERNAL  1    /* A
0460: 6e 20 69 6e 74 65 72 6e 61 6c 20 6c 6f 67 69 63  n internal logic
0470: 20 65 72 72 6f 72 20 69 6e 20 53 51 4c 69 74 65   error in SQLite
0480: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53 51 4c 49   */.#define SQLI
0490: 54 45 5f 45 52 52 4f 52 20 20 20 20 20 32 20 20  TE_ERROR     2  
04a0: 20 20 2f 2a 20 53 51 4c 20 65 72 72 6f 72 20 6f    /* SQL error o
04b0: 72 20 6d 69 73 73 69 6e 67 20 64 61 74 61 62 61  r missing databa
04c0: 73 65 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53 51  se */.#define SQ
04d0: 4c 49 54 45 5f 50 45 52 4d 20 20 20 20 20 20 33  LITE_PERM      3
04e0: 20 20 20 20 2f 2a 20 41 63 63 65 73 73 20 70 65      /* Access pe
04f0: 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 20  rmission denied 
0500: 2a 2f 0a 23 64 65 66 69 6e 65 20 53 51 4c 49 54  */.#define SQLIT
0510: 45 5f 41 42 4f 52 54 20 20 20 20 20 34 20 20 20  E_ABORT     4   
0520: 20 2f 2a 20 43 61 6c 6c 62 61 63 6b 20 72 6f 75   /* Callback rou
0530: 74 69 6e 65 20 72 65 71 75 65 73 74 65 64 20 61  tine requested a
0540: 6e 20 61 62 6f 72 74 20 2a 2f 0a 23 64 65 66 69  n abort */.#defi
0550: 6e 65 20 53 51 4c 49 54 45 5f 42 55 53 59 20 20  ne SQLITE_BUSY  
0560: 20 20 20 20 35 20 20 20 20 2f 2a 20 4f 6e 65 20      5    /* One 
0570: 6f 72 20 6d 6f 72 65 20 64 61 74 61 62 61 73 65  or more database
0580: 20 66 69 6c 65 73 20 61 72 65 20 6c 6f 63 6b 65   files are locke
0590: 64 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53 51 4c  d */.#define SQL
05a0: 49 54 45 5f 4e 4f 4d 45 4d 20 20 20 20 20 36 20  ITE_NOMEM     6 
05b0: 20 20 20 2f 2a 20 41 20 6d 61 6c 6c 6f 63 28 29     /* A malloc()
05c0: 20 66 61 69 6c 65 64 20 2a 2f 0a 23 64 65 66 69   failed */.#defi
05d0: 6e 65 20 53 51 4c 49 54 45 5f 52 45 41 44 4f 4e  ne SQLITE_READON
05e0: 4c 59 20 20 37 20 20 20 20 2f 2a 20 41 74 74 65  LY  7    /* Atte
05f0: 6d 70 74 20 74 6f 20 77 72 69 74 65 20 61 20 72  mpt to write a r
0600: 65 61 64 6f 6e 6c 79 20 64 61 74 61 62 61 73 65  eadonly database
0610: 20 2a 2f 0a 3c 2f 70 72 65 3e 3c 2f 62 6c 6f 63   */.</pre></bloc
0620: 6b 71 75 6f 74 65 3e 0a 0a 3c 70 3e 41 6c 6c 20  kquote>..<p>All 
0630: 6f 66 20 74 68 65 20 61 62 6f 76 65 20 64 65 66  of the above def
0640: 69 6e 69 74 69 6f 6e 73 20 61 72 65 20 69 6e 63  initions are inc
0650: 6c 75 64 65 64 20 69 6e 20 74 68 65 20 22 73 71  luded in the "sq
0660: 6c 69 74 65 2e 68 22 0a 68 65 61 64 65 72 20 66  lite.h".header f
0670: 69 6c 65 20 74 68 61 74 20 63 6f 6d 65 73 20 69  ile that comes i
0680: 6e 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 65  n the source tre
0690: 65 2e 3c 2f 70 3e 0a 0a 3c 68 32 3e 4f 70 65 6e  e.</p>..<h2>Open
06a0: 69 6e 67 20 61 20 64 61 74 61 62 61 73 65 3c 2f  ing a database</
06b0: 68 32 3e 0a 0a 3c 70 3e 55 73 65 20 74 68 65 20  h2>..<p>Use the 
06c0: 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29  <b>sqlite_open()
06d0: 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 74 6f  </b> function to
06e0: 20 6f 70 65 6e 20 61 6e 20 65 78 69 73 74 69 6e   open an existin
06f0: 67 20 53 51 4c 69 74 65 0a 64 61 74 61 62 61 73  g SQLite.databas
0700: 65 20 6f 72 20 74 6f 20 63 72 65 61 74 65 20 61  e or to create a
0710: 20 6e 65 77 20 53 51 4c 69 74 65 20 64 61 74 61   new SQLite data
0720: 62 61 73 65 2e 20 20 54 68 65 20 66 69 72 73 74  base.  The first
0730: 20 61 72 67 75 6d 65 6e 74 0a 69 73 20 74 68 65   argument.is the
0740: 20 64 61 74 61 62 61 73 65 20 6e 61 6d 65 2e 20   database name. 
0750: 20 54 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75   The second argu
0760: 6d 65 6e 74 20 69 73 20 61 20 63 6f 6e 73 74 61  ment is a consta
0770: 6e 74 20 30 36 36 36 20 74 6f 0a 6f 70 65 6e 20  nt 0666 to.open 
0780: 74 68 65 20 64 61 74 61 62 61 73 65 20 66 6f 72  the database for
0790: 20 72 65 61 64 69 6e 67 20 61 6e 64 20 77 72 69   reading and wri
07a0: 74 69 6e 67 20 61 6e 64 20 30 34 34 34 20 74 6f  ting and 0444 to
07b0: 20 6f 70 65 6e 20 74 68 65 0a 64 61 74 61 62 61   open the.databa
07c0: 73 65 20 72 65 61 64 20 6f 6e 6c 79 2e 20 20 54  se read only.  T
07d0: 68 65 20 74 68 69 72 64 20 61 72 67 75 6d 65 6e  he third argumen
07e0: 74 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74  t is a pointer t
07f0: 6f 20 61 20 73 74 72 69 6e 67 0a 70 6f 69 6e 74  o a string.point
0800: 65 72 2e 20 20 49 66 20 74 68 65 20 74 68 69 72  er.  If the thir
0810: 64 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e 6f  d argument is no
0820: 74 20 4e 55 4c 4c 20 61 6e 64 20 61 6e 20 65 72  t NULL and an er
0830: 72 6f 72 20 6f 63 63 75 72 73 0a 77 68 69 6c 65  ror occurs.while
0840: 20 74 72 79 69 6e 67 20 74 6f 20 6f 70 65 6e 20   trying to open 
0850: 74 68 65 20 64 61 74 61 62 61 73 65 2c 20 74 68  the database, th
0860: 65 6e 20 61 6e 20 65 72 72 6f 72 20 6d 65 73 73  en an error mess
0870: 61 67 65 20 77 69 6c 6c 20 62 65 0a 77 72 69 74  age will be.writ
0880: 74 65 6e 20 74 6f 20 6d 65 6d 6f 72 79 20 6f 62  ten to memory ob
0890: 74 61 69 6e 65 64 20 66 72 6f 6d 20 6d 61 6c 6c  tained from mall
08a0: 6f 63 28 29 20 61 6e 64 20 2a 65 72 72 6d 73 67  oc() and *errmsg
08b0: 20 77 69 6c 6c 20 62 65 20 6d 61 64 65 0a 74 6f   will be made.to
08c0: 20 70 6f 69 6e 74 20 74 6f 20 74 68 69 73 20 65   point to this e
08d0: 72 72 6f 72 20 6d 65 73 73 61 67 65 2e 20 20 54  rror message.  T
08e0: 68 65 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74  he calling funct
08f0: 69 6f 6e 20 69 73 20 72 65 73 70 6f 6e 73 69 62  ion is responsib
0900: 6c 65 0a 66 6f 72 20 66 72 65 65 69 6e 67 20 74  le.for freeing t
0910: 68 65 20 6d 65 6d 6f 72 79 20 77 68 65 6e 20 69  he memory when i
0920: 74 20 68 61 73 20 66 69 6e 69 73 68 65 64 20 77  t has finished w
0930: 69 74 68 20 69 74 2e 3c 2f 70 3e 0a 0a 3c 70 3e  ith it.</p>..<p>
0940: 41 6e 20 53 51 4c 69 74 65 20 64 61 74 61 62 61  An SQLite databa
0950: 73 65 20 69 73 20 6a 75 73 74 20 61 20 64 69 72  se is just a dir
0960: 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e  ectory containin
0970: 67 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f  g a collection o
0980: 66 0a 47 44 42 4d 20 66 69 6c 65 73 2e 20 20 54  f.GDBM files.  T
0990: 68 65 72 65 20 69 73 20 6f 6e 65 20 47 44 42 4d  here is one GDBM
09a0: 20 66 69 6c 65 20 66 6f 72 20 65 61 63 68 20 74   file for each t
09b0: 61 62 6c 65 20 61 6e 64 20 69 6e 64 65 78 20 69  able and index i
09c0: 6e 20 74 68 65 0a 64 61 74 61 62 61 73 65 2e 20  n the.database. 
09d0: 20 41 6c 6c 20 47 44 42 4d 20 66 69 6c 65 73 20   All GDBM files 
09e0: 65 6e 64 20 77 69 74 68 20 74 68 65 20 22 2e 74  end with the ".t
09f0: 62 6c 22 20 73 75 66 66 69 78 2e 20 20 45 76 65  bl" suffix.  Eve
0a00: 72 79 20 53 51 4c 69 74 65 0a 64 61 74 61 62 61  ry SQLite.databa
0a10: 73 65 20 61 6c 73 6f 20 63 6f 6e 74 61 69 6e 73  se also contains
0a20: 20 61 20 73 70 65 63 69 61 6c 20 64 61 74 61 62   a special datab
0a30: 61 73 65 20 74 61 62 6c 65 20 6e 61 6d 65 64 20  ase table named 
0a40: 3c 62 3e 73 71 6c 69 74 65 5f 6d 61 73 74 65 72  <b>sqlite_master
0a50: 3c 2f 62 3e 0a 73 74 6f 72 65 64 20 69 6e 20 69  </b>.stored in i
0a60: 74 73 20 6f 77 6e 20 47 44 42 4d 20 66 69 6c 65  ts own GDBM file
0a70: 2e 20 20 54 68 69 73 20 73 70 65 63 69 61 6c 20  .  This special 
0a80: 74 61 62 6c 65 20 72 65 63 6f 72 64 73 20 74 68  table records th
0a90: 65 20 64 61 74 61 62 61 73 65 0a 73 63 68 65 6d  e database.schem
0aa0: 61 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 6f 20 63 72  a.</p>..<p>To cr
0ab0: 65 61 74 65 20 61 20 6e 65 77 20 53 51 4c 69 74  eate a new SQLit
0ac0: 65 20 64 61 74 61 62 61 73 65 2c 20 61 6c 6c 20  e database, all 
0ad0: 79 6f 75 20 68 61 76 65 20 74 6f 20 64 6f 20 69  you have to do i
0ae0: 73 20 63 61 6c 6c 0a 3c 62 3e 73 71 6c 69 74 65  s call.<b>sqlite
0af0: 5f 6f 70 65 6e 28 29 3c 2f 62 3e 20 77 69 74 68  _open()</b> with
0b00: 20 74 68 65 20 66 69 72 73 74 20 70 61 72 61 6d   the first param
0b10: 65 74 65 72 20 73 65 74 20 74 6f 20 74 68 65 20  eter set to the 
0b20: 6e 61 6d 65 20 6f 66 0a 61 6e 20 65 6d 70 74 79  name of.an empty
0b30: 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 74   directory and t
0b40: 68 65 20 73 65 63 6f 6e 64 20 70 61 72 61 6d 65  he second parame
0b50: 74 65 72 20 73 65 74 20 74 6f 20 30 36 36 36 2e  ter set to 0666.
0b60: 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 72 65 74  </p>..<p>The ret
0b70: 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 74 68 65  urn value of the
0b80: 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28   <b>sqlite_open(
0b90: 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 69  )</b> function i
0ba0: 73 20 61 0a 70 6f 69 6e 74 65 72 20 74 6f 20 61  s a.pointer to a
0bb0: 6e 20 6f 70 61 71 75 65 20 3c 62 3e 73 71 6c 69  n opaque <b>sqli
0bc0: 74 65 3c 2f 62 3e 20 73 74 72 75 63 74 75 72 65  te</b> structure
0bd0: 2e 20 20 54 68 69 73 20 70 6f 69 6e 74 65 72 20  .  This pointer 
0be0: 77 69 6c 6c 0a 62 65 20 74 68 65 20 66 69 72 73  will.be the firs
0bf0: 74 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 61 6c  t argument to al
0c00: 6c 20 73 75 62 73 65 71 75 65 6e 74 20 53 51 4c  l subsequent SQL
0c10: 69 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c  ite function cal
0c20: 6c 73 20 74 68 61 74 0a 64 65 61 6c 20 77 69 74  ls that.deal wit
0c30: 68 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62  h the same datab
0c40: 61 73 65 2e 20 20 4e 55 4c 4c 20 69 73 20 72 65  ase.  NULL is re
0c50: 74 75 72 6e 65 64 20 69 66 20 74 68 65 20 6f 70  turned if the op
0c60: 65 6e 20 66 61 69 6c 73 0a 66 6f 72 20 61 6e 79  en fails.for any
0c70: 20 72 65 61 73 6f 6e 2e 3c 2f 70 3e 0a 0a 3c 68   reason.</p>..<h
0c80: 32 3e 43 6c 6f 73 69 6e 67 20 74 68 65 20 64 61  2>Closing the da
0c90: 74 61 62 61 73 65 3c 2f 68 32 3e 0a 0a 3c 70 3e  tabase</h2>..<p>
0ca0: 54 6f 20 63 6c 6f 73 65 20 61 6e 20 53 51 4c 69  To close an SQLi
0cb0: 74 65 20 64 61 74 61 62 61 73 65 2c 20 6a 75 73  te database, jus
0cc0: 74 20 63 61 6c 6c 20 74 68 65 20 3c 62 3e 73 71  t call the <b>sq
0cd0: 6c 69 74 65 5f 63 6c 6f 73 65 28 29 3c 2f 62 3e  lite_close()</b>
0ce0: 0a 66 75 6e 63 74 69 6f 6e 20 70 61 73 73 69 6e  .function passin
0cf0: 67 20 69 74 20 74 68 65 20 73 71 6c 69 74 65 20  g it the sqlite 
0d00: 73 74 72 75 63 74 75 72 65 20 70 6f 69 6e 74 65  structure pointe
0d10: 72 20 74 68 61 74 20 77 61 73 20 6f 62 74 61 69  r that was obtai
0d20: 6e 65 64 0a 66 72 6f 6d 20 61 20 70 72 69 6f 72  ned.from a prior
0d30: 20 63 61 6c 6c 20 74 6f 20 3c 62 3e 73 71 6c 69   call to <b>sqli
0d40: 74 65 5f 6f 70 65 6e 3c 2f 62 3e 2e 0a 0a 3c 68  te_open</b>...<h
0d50: 32 3e 45 78 65 63 75 74 69 6e 67 20 53 51 4c 20  2>Executing SQL 
0d60: 73 74 61 74 65 6d 65 6e 74 73 3c 2f 68 32 3e 0a  statements</h2>.
0d70: 0a 3c 70 3e 54 68 65 20 3c 62 3e 73 71 6c 69 74  .<p>The <b>sqlit
0d80: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 66 75 6e  e_exec()</b> fun
0d90: 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f  ction is used to
0da0: 20 70 72 6f 63 65 73 73 20 53 51 4c 20 73 74 61   process SQL sta
0db0: 74 65 6d 65 6e 74 73 0a 61 6e 64 20 71 75 65 72  tements.and quer
0dc0: 69 65 73 2e 20 20 54 68 69 73 20 66 75 6e 63 74  ies.  This funct
0dd0: 69 6f 6e 20 72 65 71 75 69 72 65 73 20 35 20 70  ion requires 5 p
0de0: 61 72 61 6d 65 74 65 72 73 20 61 73 20 66 6f 6c  arameters as fol
0df0: 6c 6f 77 73 3a 3c 2f 70 3e 0a 0a 3c 6f 6c 3e 0a  lows:</p>..<ol>.
0e00: 3c 6c 69 3e 3c 70 3e 41 20 70 6f 69 6e 74 65 72  <li><p>A pointer
0e10: 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65 20 73   to the sqlite s
0e20: 74 72 75 63 74 75 72 65 20 6f 62 74 61 69 6e 65  tructure obtaine
0e30: 64 20 66 72 6f 6d 20 61 20 70 72 69 6f 72 20 63  d from a prior c
0e40: 61 6c 6c 0a 20 20 20 20 20 20 20 74 6f 20 3c 62  all.       to <b
0e50: 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f  >sqlite_open()</
0e60: 62 3e 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 6c 69  b>.</p></li>.<li
0e70: 3e 3c 70 3e 41 20 6e 75 6c 6c 2d 74 65 72 6d 69  ><p>A null-termi
0e80: 6e 61 74 65 64 20 73 74 72 69 6e 67 20 63 6f 6e  nated string con
0e90: 74 61 69 6e 69 6e 67 20 74 68 65 20 74 65 78 74  taining the text
0ea0: 20 6f 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 0a   of one or more.
0eb0: 20 20 20 20 20 20 20 53 51 4c 20 73 74 61 74 65         SQL state
0ec0: 6d 65 6e 74 73 20 61 6e 64 2f 6f 72 20 71 75 65  ments and/or que
0ed0: 72 69 65 73 20 74 6f 20 62 65 20 70 72 6f 63 65  ries to be proce
0ee0: 73 73 65 64 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c  ssed.</p></li>.<
0ef0: 6c 69 3e 3c 70 3e 41 20 70 6f 69 6e 74 65 72 20  li><p>A pointer 
0f00: 74 6f 20 61 20 63 61 6c 6c 62 61 63 6b 20 66 75  to a callback fu
0f10: 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 69 73 20  nction which is 
0f20: 69 6e 76 6f 6b 65 64 20 6f 6e 63 65 20 66 6f 72  invoked once for
0f30: 20 65 61 63 68 0a 20 20 20 20 20 20 20 72 6f 77   each.       row
0f40: 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f   in the result o
0f50: 66 20 61 20 71 75 65 72 79 2e 20 20 54 68 69 73  f a query.  This
0f60: 20 61 72 67 75 6d 65 6e 74 20 6d 61 79 20 62 65   argument may be
0f70: 20 4e 55 4c 4c 2c 20 69 6e 20 77 68 69 63 68 0a   NULL, in which.
0f80: 20 20 20 20 20 20 20 63 61 73 65 20 6e 6f 20 63         case no c
0f90: 61 6c 6c 62 61 63 6b 73 20 77 69 6c 6c 20 65 76  allbacks will ev
0fa0: 65 72 20 62 65 20 69 6e 76 6f 6b 65 64 2e 3c 2f  er be invoked.</
0fb0: 70 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 41  p></li>.<li><p>A
0fc0: 20 70 6f 69 6e 74 65 72 20 74 68 61 74 20 69 73   pointer that is
0fd0: 20 66 6f 72 77 61 72 64 65 64 20 74 6f 20 62 65   forwarded to be
0fe0: 63 6f 6d 65 20 74 68 65 20 66 69 72 73 74 20 61  come the first a
0ff0: 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 74  rgument.       t
1000: 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66  o the callback f
1010: 75 6e 63 74 69 6f 6e 2e 3c 2f 70 3e 3c 2f 6c 69  unction.</p></li
1020: 3e 0a 3c 6c 69 3e 3c 70 3e 41 20 70 6f 69 6e 74  >.<li><p>A point
1030: 65 72 20 74 6f 20 61 6e 20 65 72 72 6f 72 20 73  er to an error s
1040: 74 72 69 6e 67 2e 20 20 45 72 72 6f 72 20 6d 65  tring.  Error me
1050: 73 73 61 67 65 73 20 61 72 65 20 77 72 69 74 74  ssages are writt
1060: 65 6e 20 74 6f 20 73 70 61 63 65 0a 20 20 20 20  en to space.    
1070: 20 20 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d     obtained from
1080: 20 6d 61 6c 6c 6f 63 28 29 20 61 6e 64 20 74 68   malloc() and th
1090: 65 20 65 72 72 6f 72 20 73 74 72 69 6e 67 20 69  e error string i
10a0: 73 20 6d 61 64 65 20 74 6f 20 70 6f 69 6e 74 20  s made to point 
10b0: 74 6f 0a 20 20 20 20 20 20 20 74 68 65 20 6d 61  to.       the ma
10c0: 6c 6c 6f 63 65 64 20 73 70 61 63 65 2e 20 20 54  lloced space.  T
10d0: 68 65 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74  he calling funct
10e0: 69 6f 6e 20 69 73 20 72 65 73 70 6f 6e 73 69 62  ion is responsib
10f0: 6c 65 20 66 6f 72 20 66 72 65 65 69 6e 67 0a 20  le for freeing. 
1100: 20 20 20 20 20 20 74 68 69 73 20 73 70 61 63 65        this space
1110: 20 77 68 65 6e 20 69 74 20 68 61 73 20 66 69 6e   when it has fin
1120: 69 73 68 65 64 20 77 69 74 68 20 69 74 2e 0a 20  ished with it.. 
1130: 20 20 20 20 20 20 54 68 69 73 20 61 72 67 75 6d        This argum
1140: 65 6e 74 20 6d 61 79 20 62 65 20 4e 55 4c 4c 2c  ent may be NULL,
1150: 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 65   in which case e
1160: 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 61 72  rror messages ar
1170: 65 20 6e 6f 74 0a 20 20 20 20 20 20 20 72 65 70  e not.       rep
1180: 6f 72 74 65 64 20 62 61 63 6b 20 74 6f 20 74 68  orted back to th
1190: 65 20 63 61 6c 6c 69 6e 67 20 66 75 6e 63 74 69  e calling functi
11a0: 6f 6e 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 2f 6f  on.</p></li>.</o
11b0: 6c 3e 0a 0a 3c 70 3e 0a 54 68 65 20 63 61 6c 6c  l>..<p>.The call
11c0: 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 69 73  back function is
11d0: 20 75 73 65 64 20 74 6f 20 72 65 63 65 69 76 65   used to receive
11e0: 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 66 20   the results of 
11f0: 61 20 71 75 65 72 79 2e 20 20 41 0a 70 72 6f 74  a query.  A.prot
1200: 6f 74 79 70 65 20 66 6f 72 20 74 68 65 20 63 61  otype for the ca
1210: 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20  llback function 
1220: 69 73 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 3c 2f  is as follows:</
1230: 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e  p>..<blockquote>
1240: 3c 70 72 65 3e 0a 69 6e 74 20 43 61 6c 6c 62 61  <pre>.int Callba
1250: 63 6b 28 76 6f 69 64 20 2a 70 41 72 67 2c 20 69  ck(void *pArg, i
1260: 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a  nt argc, char **
1270: 61 72 67 76 2c 20 63 68 61 72 20 2a 2a 63 6f 6c  argv, char **col
1280: 75 6d 6e 4e 61 6d 65 73 29 7b 0a 20 20 72 65 74  umnNames){.  ret
1290: 75 72 6e 20 30 3b 0a 7d 0a 3c 2f 70 72 65 3e 3c  urn 0;.}.</pre><
12a0: 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a 3c 70  /blockquote>..<p
12b0: 3e 54 68 65 20 66 69 72 73 74 20 61 72 67 75 6d  >The first argum
12c0: 65 6e 74 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  ent to the callb
12d0: 61 63 6b 20 69 73 20 6a 75 73 74 20 61 20 63 6f  ack is just a co
12e0: 70 79 20 6f 66 20 74 68 65 20 66 6f 75 72 74 68  py of the fourth
12f0: 20 61 72 67 75 6d 65 6e 74 0a 74 6f 20 3c 62 3e   argument.to <b>
1300: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62  sqlite_exec()</b
1310: 3e 20 20 54 68 69 73 20 70 61 72 61 6d 65 74 65  >  This paramete
1320: 72 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f  r can be used to
1330: 20 70 61 73 73 20 61 72 62 69 74 72 61 72 79 0a   pass arbitrary.
1340: 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 68 72 6f  information thro
1350: 75 67 68 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  ugh to the callb
1360: 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f  ack function fro
1370: 6d 20 63 6c 69 65 6e 74 20 63 6f 64 65 2e 0a 54  m client code..T
1380: 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65  he second argume
1390: 6e 74 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72  nt is the number
13a0: 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 74 68 65 20   columns in the 
13b0: 71 75 65 72 79 20 72 65 73 75 6c 74 2e 0a 54 68  query result..Th
13c0: 65 20 74 68 69 72 64 20 61 72 67 75 6d 65 6e 74  e third argument
13d0: 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20   is an array of 
13e0: 70 6f 69 6e 74 65 72 73 20 74 6f 20 73 74 72 69  pointers to stri
13f0: 6e 67 73 20 77 68 65 72 65 20 65 61 63 68 20 73  ngs where each s
1400: 74 72 69 6e 67 0a 69 73 20 61 20 73 69 6e 67 6c  tring.is a singl
1410: 65 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68 65 20  e column of the 
1420: 72 65 73 75 6c 74 20 66 6f 72 20 74 68 61 74 20  result for that 
1430: 72 65 63 6f 72 64 2e 20 20 54 68 65 20 6e 61 6d  record.  The nam
1440: 65 73 20 6f 66 20 74 68 65 0a 63 6f 6c 75 6d 6e  es of the.column
1450: 73 20 61 72 65 20 63 6f 6e 74 61 69 6e 65 64 20  s are contained 
1460: 69 6e 20 74 68 65 20 66 6f 75 72 74 68 20 61 72  in the fourth ar
1470: 67 75 6d 65 6e 74 2e 3c 2f 70 3e 0a 0a 3c 70 3e  gument.</p>..<p>
1480: 54 68 65 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e  The callback fun
1490: 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 6e 6f 72  ction should nor
14a0: 6d 61 6c 6c 79 20 72 65 74 75 72 6e 20 30 2e 20  mally return 0. 
14b0: 20 49 66 20 74 68 65 20 63 61 6c 6c 62 61 63 6b   If the callback
14c0: 0a 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e  .function return
14d0: 73 20 6e 6f 6e 2d 7a 65 72 6f 2c 20 74 68 65 20  s non-zero, the 
14e0: 71 75 65 72 79 20 69 73 20 69 6d 6d 65 64 69 61  query is immedia
14f0: 74 65 6c 79 20 61 62 6f 72 74 65 64 20 61 6e 64  tely aborted and
1500: 20 0a 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63   .<b>sqlite_exec
1510: 28 29 3c 2f 62 3e 20 77 69 6c 6c 20 72 65 74 75  ()</b> will retu
1520: 72 6e 20 53 51 4c 49 54 45 5f 41 42 4f 52 54 2e  rn SQLITE_ABORT.
1530: 3c 2f 70 3e 0a 0a 3c 68 32 3e 54 65 73 74 69 6e  </p>..<h2>Testin
1540: 67 20 66 6f 72 20 61 20 63 6f 6d 70 6c 65 74 65  g for a complete
1550: 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 3c 2f   SQL statement</
1560: 68 32 3e 0a 0a 3c 70 3e 54 68 65 20 6c 61 73 74  h2>..<p>The last
1570: 20 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74 69   interface routi
1580: 6e 65 20 74 6f 20 53 51 4c 69 74 65 20 69 73 20  ne to SQLite is 
1590: 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 66 75  a convenience fu
15a0: 6e 63 74 69 6f 6e 20 75 73 65 64 0a 74 6f 20 74  nction used.to t
15b0: 65 73 74 20 77 68 65 74 68 65 72 20 6f 72 20 6e  est whether or n
15c0: 6f 74 20 61 20 73 74 72 69 6e 67 20 66 6f 72 6d  ot a string form
15d0: 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 53 51 4c  s a complete SQL
15e0: 20 73 74 61 74 65 6d 65 6e 74 2e 0a 49 66 20 74   statement..If t
15f0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d  he <b>sqlite_com
1600: 70 6c 65 74 65 28 29 3c 2f 62 3e 20 66 75 6e 63  plete()</b> func
1610: 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 72 75  tion returns tru
1620: 65 20 77 68 65 6e 20 69 74 73 20 69 6e 70 75 74  e when its input
1630: 0a 69 73 20 61 20 73 74 72 69 6e 67 2c 20 74 68  .is a string, th
1640: 65 6e 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20  en the argument 
1650: 66 6f 72 6d 73 20 61 20 63 6f 6d 70 6c 65 74 65  forms a complete
1660: 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 2e 0a   SQL statement..
1670: 54 68 65 72 65 20 61 72 65 20 6e 6f 20 67 75 61  There are no gua
1680: 72 61 6e 74 65 65 73 20 74 68 61 74 20 74 68 65  rantees that the
1690: 20 73 79 6e 74 61 78 20 6f 66 20 74 68 61 74 20   syntax of that 
16a0: 73 74 61 74 65 6d 65 6e 74 20 69 73 20 63 6f 72  statement is cor
16b0: 72 65 63 74 2c 0a 62 75 74 20 77 65 20 61 74 20  rect,.but we at 
16c0: 6c 65 61 73 74 20 6b 6e 6f 77 20 74 68 65 20 73  least know the s
16d0: 74 61 74 65 6d 65 6e 74 20 69 73 20 63 6f 6d 70  tatement is comp
16e0: 6c 65 74 65 2e 20 20 49 66 20 3c 62 3e 73 71 6c  lete.  If <b>sql
16f0: 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f  ite_complete()</
1700: 62 3e 0a 72 65 74 75 72 6e 73 20 66 61 6c 73 65  b>.returns false
1710: 2c 20 74 68 65 6e 20 6d 6f 72 65 20 74 65 78 74  , then more text
1720: 20 69 73 20 72 65 71 75 69 72 65 64 20 74 6f 20   is required to 
1730: 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 53 51 4c  complete the SQL
1740: 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 70 3e 0a   statement.</p>.
1750: 0a 3c 70 3e 46 6f 72 20 74 68 65 20 70 75 72 70  .<p>For the purp
1760: 6f 73 65 20 6f 66 20 74 68 65 20 3c 62 3e 73 71  ose of the <b>sq
1770: 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c  lite_complete()<
1780: 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e  /b> function, an
1790: 20 53 51 4c 0a 73 74 61 74 65 6d 65 6e 74 20 69   SQL.statement i
17a0: 73 20 63 6f 6d 70 6c 65 74 65 20 69 66 20 69 74  s complete if it
17b0: 20 65 6e 64 73 20 69 6e 20 61 20 73 65 6d 69 63   ends in a semic
17c0: 6f 6c 6f 6e 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68  olon.</p>..<p>Th
17d0: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
17e0: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 75 74 69  command-line uti
17f0: 6c 69 74 79 20 75 73 65 73 20 74 68 65 20 3c 62  lity uses the <b
1800: 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65  >sqlite_complete
1810: 28 29 3c 2f 62 3e 0a 66 75 6e 63 74 69 6f 6e 20  ()</b>.function 
1820: 74 6f 20 6b 6e 6f 77 20 77 68 65 6e 20 69 74 20  to know when it 
1830: 6e 65 65 64 73 20 74 6f 20 63 61 6c 6c 20 3c 62  needs to call <b
1840: 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f  >sqlite_exec()</
1850: 62 3e 2e 20 20 41 66 74 65 72 20 65 61 63 68 0a  b>.  After each.
1860: 6c 69 6e 65 20 6f 66 20 69 6e 70 75 74 20 69 73  line of input is
1870: 20 72 65 63 65 69 76 65 64 2c 20 3c 62 3e 73 71   received, <b>sq
1880: 6c 69 74 65 3c 2f 62 3e 20 63 61 6c 6c 73 20 3c  lite</b> calls <
1890: 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74  b>sqlite_complet
18a0: 65 28 29 3c 2f 62 3e 0a 6f 6e 20 61 6c 6c 20 69  e()</b>.on all i
18b0: 6e 70 75 74 20 69 6e 20 69 74 73 20 62 75 66 66  nput in its buff
18c0: 65 72 2e 20 20 49 66 20 3c 62 3e 73 71 6c 69 74  er.  If <b>sqlit
18d0: 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e  e_complete()</b>
18e0: 20 72 65 74 75 72 6e 73 20 74 72 75 65 2c 20 0a   returns true, .
18f0: 74 68 65 6e 20 3c 62 3e 73 71 6c 69 74 65 5f 65  then <b>sqlite_e
1900: 78 65 63 28 29 3c 2f 62 3e 20 69 73 20 63 61 6c  xec()</b> is cal
1910: 6c 65 64 20 61 6e 64 20 74 68 65 20 69 6e 70 75  led and the inpu
1920: 74 20 62 75 66 66 65 72 20 69 73 20 72 65 73 65  t buffer is rese
1930: 74 2e 20 20 49 66 0a 3c 62 3e 73 71 6c 69 74 65  t.  If.<b>sqlite
1940: 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20  _complete()</b> 
1950: 72 65 74 75 72 6e 73 20 66 61 6c 73 65 2c 20 74  returns false, t
1960: 68 65 6e 20 74 68 65 20 70 72 6f 6d 70 74 20 69  hen the prompt i
1970: 73 20 63 68 61 6e 67 65 64 20 74 6f 0a 74 68 65  s changed to.the
1980: 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 70 72   continuation pr
1990: 6f 6d 70 74 20 61 6e 64 20 61 6e 6f 74 68 65 72  ompt and another
19a0: 20 6c 69 6e 65 20 6f 66 20 74 65 78 74 20 69 73   line of text is
19b0: 20 72 65 61 64 20 61 6e 64 20 61 64 64 65 64 20   read and added 
19c0: 74 6f 0a 74 68 65 20 69 6e 70 75 74 20 62 75 66  to.the input buf
19d0: 66 65 72 2e 3c 2f 70 3e 0a 0a 3c 68 32 3e 55 73  fer.</p>..<h2>Us
19e0: 61 67 65 20 45 78 61 6d 70 6c 65 73 3c 2f 68 32  age Examples</h2
19f0: 3e 0a 0a 3c 70 3e 46 6f 72 20 65 78 61 6d 70 6c  >..<p>For exampl
1a00: 65 73 20 6f 66 20 68 6f 77 20 74 68 65 20 53 51  es of how the SQ
1a10: 4c 69 74 65 20 43 2f 43 2b 2b 20 69 6e 74 65 72  Lite C/C++ inter
1a20: 66 61 63 65 20 63 61 6e 20 62 65 20 75 73 65 64  face can be used
1a30: 2c 0a 72 65 66 65 72 20 74 6f 20 74 68 65 20 73  ,.refer to the s
1a40: 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 74  ource code for t
1a50: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
1a60: 20 70 72 6f 67 72 61 6d 20 69 6e 20 74 68 65 0a   program in the.
1a70: 66 69 6c 65 20 3c 62 3e 73 72 63 2f 73 68 65 6c  file <b>src/shel
1a80: 6c 2e 63 3c 2f 62 3e 20 6f 66 20 74 68 65 20 73  l.c</b> of the s
1a90: 6f 75 72 63 65 20 74 72 65 65 2e 0a 41 64 64 69  ource tree..Addi
1aa0: 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69  tional informati
1ab0: 6f 6e 20 61 62 6f 75 74 20 73 71 6c 69 74 65 20  on about sqlite 
1ac0: 69 73 20 61 76 61 69 6c 61 62 6c 65 20 61 74 0a  is available at.
1ad0: 3c 61 20 68 72 65 66 3d 22 73 71 6c 69 74 65 2e  <a href="sqlite.
1ae0: 68 74 6d 6c 22 3e 73 71 6c 69 74 65 2e 68 74 6d  html">sqlite.htm
1af0: 6c 3c 2f 61 3e 2e 0a 53 65 65 20 61 6c 73 6f 20  l</a>..See also 
1b00: 74 68 65 20 73 6f 75 72 63 65 73 20 74 6f 20 74  the sources to t
1b10: 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65  he Tcl interface
1b20: 20 66 6f 72 20 53 51 4c 69 74 65 20 69 6e 0a 74   for SQLite in.t
1b30: 68 65 20 73 6f 75 72 63 65 20 66 69 6c 65 20 3c  he source file <
1b40: 62 3e 73 72 63 2f 74 63 6c 73 71 6c 69 74 65 2e  b>src/tclsqlite.
1b50: 63 3c 2f 62 3e 2e 3c 2f 70 3e 0a 7d 0a 0a 70 75  c</b>.</p>.}..pu
1b60: 74 73 20 7b 0a 3c 70 3e 3c 68 72 20 2f 3e 3c 2f  ts {.<p><hr /></
1b70: 70 3e 0a 3c 70 3e 3c 61 20 68 72 65 66 3d 22 69  p>.<p><a href="i
1b80: 6e 64 65 78 2e 68 74 6d 6c 22 3e 3c 69 6d 67 20  ndex.html"><img 
1b90: 73 72 63 3d 22 2f 67 6f 62 61 63 6b 2e 6a 70 67  src="/goback.jpg
1ba0: 22 20 62 6f 72 64 65 72 3d 30 20 2f 3e 0a 42 61  " border=0 />.Ba
1bb0: 63 6b 20 74 6f 20 74 68 65 20 53 51 4c 69 74 65  ck to the SQLite
1bc0: 20 48 6f 6d 65 20 50 61 67 65 3c 2f 61 3e 0a 3c   Home Page</a>.<
1bd0: 2f 70 3e 0a 0a 3c 2f 62 6f 64 79 3e 3c 2f 68 74  /p>..</body></ht
1be0: 6d 6c 3e 7d 0a                                   ml>}.