Documentation Source Text

Check-in [32b6f9cdf7]
Login

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

Overview
Comment:Better hyperlinks.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 32b6f9cdf7616ec78b847e0249100787ac78275c
User & Date: drh 2008-05-10 16:22:44
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
Hide Diffs Unified Diffs 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
...
230
231
232
233
234
235
236
237
238

239
240




241
242
243
244
245
246
247

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>

................................................................................
</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>








|
<
>
|
|
>
>
>
>







 







|
<
>
|
|
>
>
>
>







184
185
186
187
188
189
190
191

192
193
194
195
196
197
198
199
200
201
202
203
204
205
...
234
235
236
237
238
239
240
241

242
243
244
245
246
247
248
249
250
251
252
253
254
255

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>

................................................................................
</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
..
51
52
53
54
55
56
57
58
59
60
61
62
63
64




65
66
67
68
69
70
71

<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>

................................................................................
  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;
>







 







|






>
>
>
>







1
2
3
4
5
6
7
8
..
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
<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>

................................................................................
  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;