Documentation Source Text

Check-in [32b6f9cdf7]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Better hyperlinks.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 32b6f9cdf7616ec78b847e0249100787ac78275c
User & Date: drh 2008-05-10 16:22:44.000
Context
2008-05-14
16:16
Change the release date of 3.5.9 to May 14. (check-in: 0b8419d9e2 user: drh tags: trunk)
2008-05-10
16:22
Better hyperlinks. (check-in: 32b6f9cdf7 user: drh tags: trunk)
15:45
Additional work on the C/C++ interface roadmap. (check-in: 85e3a73968 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/about.in.
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Think of SQLite not as a replacement for 
<a href="http://www.oracle.com/database/index.html">Oracle</a> but
as a replacement for <a href="http://man.he.net/man3/fopen">fopen()</a></p>

<p>SQLite is a compact library.
With all features enabled, the library size can be less than 250KiB,
depending on compiler optimization settings.  (Some compiler optimizations
such as agressive function inlining and loop unrolling can cause the
object code to be much larger.)  If optional features are omitted, the
size of the SQLite library can be reduced below 180KiB.  SQLite can also
be made to run in minimal stack space (16KiB) and
very little heap (100KiB), making SQLite a popular database engine 
choice on memory constrained gadgets such as cellphones, PDAs, and MP3 players.
There is a tradeoff between memory usage and speed.  
SQLite generally runs faster the more memory
you give it.  Nevertheless, performance is usually quite good even
in low-memory environments.</p>

<p>SQLite has a reputation for being very reliable.
Over two-thirds of the source code is devoted purely to testing and
verification.  An automated test suite runs hundreds of thousands of
tests involving millions of individual SQL statements and achieves
over 99% statement coverage.  SQLite responds gracefully to memory
allocation failures and disk I/O errors.  Transactions are
<a href="http://en.wikipedia.org/wiki/ACID">ACID</a>
even if interrupted by system crashes or power failures.  
All of this is verified by







|











|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Think of SQLite not as a replacement for 
<a href="http://www.oracle.com/database/index.html">Oracle</a> but
as a replacement for <a href="http://man.he.net/man3/fopen">fopen()</a></p>

<p>SQLite is a compact library.
With all features enabled, the library size can be less than 250KiB,
depending on compiler optimization settings.  (Some compiler optimizations
such as aggressive function inlining and loop unrolling can cause the
object code to be much larger.)  If optional features are omitted, the
size of the SQLite library can be reduced below 180KiB.  SQLite can also
be made to run in minimal stack space (16KiB) and
very little heap (100KiB), making SQLite a popular database engine 
choice on memory constrained gadgets such as cellphones, PDAs, and MP3 players.
There is a tradeoff between memory usage and speed.  
SQLite generally runs faster the more memory
you give it.  Nevertheless, performance is usually quite good even
in low-memory environments.</p>

<p>SQLite has a reputation for being very reliable.
Nearly three-fourths of the source code is devoted purely to testing and
verification.  An automated test suite runs hundreds of thousands of
tests involving millions of individual SQL statements and achieves
over 99% statement coverage.  SQLite responds gracefully to memory
allocation failures and disk I/O errors.  Transactions are
<a href="http://en.wikipedia.org/wiki/ACID">ACID</a>
even if interrupted by system crashes or power failures.  
All of this is verified by
Changes to pages/capi3ref.in.
184
185
186
187
188
189
190
191
192
193
194




195
196
197
198
199
200
201

hd_open_aux c3ref/intro.html
hd_header Introduction
hd_enable_main 0
hd_keywords {capi3ref}
</tcl>

<p>These pages defined the C-language interface to SQLite.
These pages are intended as a reference to what SQLite
is suppose to do.  This is not a tutorial.  These
pages are designed to be precise, not easy to read.</p>





<p>This version of the C-language interface reference is
broken down into small pages for easy viewing.  The
same content is also available as a
<a href="../capi3ref.html">single large HTML file</a>
for those who prefer that format.</p>








|
|
|
|
>
>
>
>







184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205

hd_open_aux c3ref/intro.html
hd_header Introduction
hd_enable_main 0
hd_keywords {capi3ref}
</tcl>

<p>These pages defined the C-language interface to SQLite.</p>

<p>This is not a tutorial.  These
pages are designed to be precise, not easy to read.
For a tutorial introduction see
[quickstart | SQLite In 3 Minutes Or Less] and/or
the [cintro | Introduction To The SQLite C/C++ Interface].
</p>

<p>This version of the C-language interface reference is
broken down into small pages for easy viewing.  The
same content is also available as a
<a href="../capi3ref.html">single large HTML file</a>
for those who prefer that format.</p>

230
231
232
233
234
235
236
237
238
239
240




241
242
243
244
245
246
247
</ol>

<tcl>
hd_close_aux
hd_enable_main 1
</tcl>

<p>This page defined the C-language interface to SQLite.
This page is intended as a reference to what SQLite
is suppose to do.  This is not a tutorial.  This
page is designed to be precise, not easy to read.</p>





<p>This page contains all C-language interface information
in a single HTML file.  The same information is also
available broken out into 
<a href="c3ref/intro.html">lots of small pages</a>
for easier viewing, if you prefer.</p>








|
|
|
|
>
>
>
>







234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
</ol>

<tcl>
hd_close_aux
hd_enable_main 1
</tcl>

<p>This page defined the C-language interface to SQLite.</p>

<p>This is not a tutorial.  These
pages are designed to be precise, not easy to read.
For a tutorial introduction see
[quickstart | SQLite In 3 Minutes Or Less] and/or
the [cintro | Introduction To The SQLite C/C++ Interface].
</p>

<p>This page contains all C-language interface information
in a single HTML file.  The same information is also
available broken out into 
<a href="c3ref/intro.html">lots of small pages</a>
for easier viewing, if you prefer.</p>

Changes to pages/cintro.in.
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
      append num .$level($i)
    }
  }
  incr n 1
  hd_puts "<h$n>$num $name</h$n>"
}

hd_keywords {Introduction To The SQLite C/C++ Interface}
HEADING 0 {An Introduction To The SQLite C/C++ Interface}
</tcl>

<p>
  This article provides an overview and roadmap to the C/C++ interface
  to SQLite.
</p>







|







29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
      append num .$level($i)
    }
  }
  incr n 1
  hd_puts "<h$n>$num $name</h$n>"
}

hd_keywords {cintro}
HEADING 0 {An Introduction To The SQLite C/C++ Interface}
</tcl>

<p>
  This article provides an overview and roadmap to the C/C++ interface
  to SQLite.
</p>
Changes to pages/quickstart.in.

1
2
3
4
5
6
7

<title>SQLite In 5 Minutes Or Less</title>

<p>Here is what you do to start experimenting with SQLite without having
to do a lot of tedious reading and configuration:</p>

<h2>Download The Code</h2>

>







1
2
3
4
5
6
7
8
<tcl>hd_keywords {quickstart}</tcl>
<title>SQLite In 5 Minutes Or Less</title>

<p>Here is what you do to start experimenting with SQLite without having
to do a lot of tedious reading and configuration:</p>

<h2>Download The Code</h2>

51
52
53
54
55
56
57
58
59
60
61
62
63
64




65
66
67
68
69
70
71
  puts ""
}
<b>db</b> close
</pre></blockquote>
</li>

<li><p>Below is a simple C program that demonstrates how to use
the C/C++ interface to SQLite.  The name of a database is given by
the first argument and the second argument is one or more SQL statements
to execute against the database.  The function calls to pay attention
to here are the call to [sqlite3_open()] on line 22 which opens
the database, [sqlite3_exec()] on line 27 that executes SQL
commands against the database, and [sqlite3_close()] on line 31
that closes the database connection.</p>





<blockquote><pre>
#include &lt;stdio.h&gt;
#include &lt;sqlite3.h&gt;

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
  int i;







|






>
>
>
>







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
  puts ""
}
<b>db</b> close
</pre></blockquote>
</li>

<li><p>Below is a simple C program that demonstrates how to use
the [capi3ref | C/C++ interface] to SQLite.  The name of a database is given by
the first argument and the second argument is one or more SQL statements
to execute against the database.  The function calls to pay attention
to here are the call to [sqlite3_open()] on line 22 which opens
the database, [sqlite3_exec()] on line 27 that executes SQL
commands against the database, and [sqlite3_close()] on line 31
that closes the database connection.</p>

<p>See also the [cintro | Introduction To The SQLite C/C++ Interface] for
an introductory overview and roadmap to the dozens of SQLite interface
functions.</p>

<blockquote><pre>
#include &lt;stdio.h&gt;
#include &lt;sqlite3.h&gt;

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
  int i;