206 lines
6.6 KiB
HTML
206 lines
6.6 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<link href="sqlite.css" rel="stylesheet">
|
|
<title>SQLite In 5 Minutes Or Less</title>
|
|
<!-- path= -->
|
|
</head>
|
|
<body>
|
|
<div class=nosearch>
|
|
<a href="index.html">
|
|
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0">
|
|
</a>
|
|
<div><!-- IE hack to prevent disappearing logo --></div>
|
|
<div class="tagline desktoponly">
|
|
Small. Fast. Reliable.<br>Choose any three.
|
|
</div>
|
|
<div class="menu mainmenu">
|
|
<ul>
|
|
<li><a href="index.html">Home</a>
|
|
<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
|
|
<li class='wideonly'><a href='about.html'>About</a>
|
|
<li class='desktoponly'><a href="docs.html">Documentation</a>
|
|
<li class='desktoponly'><a href="download.html">Download</a>
|
|
<li class='wideonly'><a href='copyright.html'>License</a>
|
|
<li class='desktoponly'><a href="support.html">Support</a>
|
|
<li class='desktoponly'><a href="prosupport.html">Purchase</a>
|
|
<li class='search' id='search_menubutton'>
|
|
<a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
|
|
</ul>
|
|
</div>
|
|
<div class="menu submenu" id="submenu">
|
|
<ul>
|
|
<li><a href='about.html'>About</a>
|
|
<li><a href='docs.html'>Documentation</a>
|
|
<li><a href='download.html'>Download</a>
|
|
<li><a href='support.html'>Support</a>
|
|
<li><a href='prosupport.html'>Purchase</a>
|
|
</ul>
|
|
</div>
|
|
<div class="searchmenu" id="searchmenu">
|
|
<form method="GET" action="search">
|
|
<select name="s" id="searchtype">
|
|
<option value="d">Search Documentation</option>
|
|
<option value="c">Search Changelog</option>
|
|
</select>
|
|
<input type="text" name="q" id="searchbox" value="">
|
|
<input type="submit" value="Go">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function toggle_div(nm) {
|
|
var w = document.getElementById(nm);
|
|
if( w.style.display=="block" ){
|
|
w.style.display = "none";
|
|
}else{
|
|
w.style.display = "block";
|
|
}
|
|
}
|
|
function toggle_search() {
|
|
var w = document.getElementById("searchmenu");
|
|
if( w.style.display=="block" ){
|
|
w.style.display = "none";
|
|
} else {
|
|
w.style.display = "block";
|
|
setTimeout(function(){
|
|
document.getElementById("searchbox").focus()
|
|
}, 30);
|
|
}
|
|
}
|
|
function div_off(nm){document.getElementById(nm).style.display="none";}
|
|
window.onbeforeunload = function(e){div_off("submenu");}
|
|
/* Disable the Search feature if we are not operating from CGI, since */
|
|
/* Search is accomplished using CGI and will not work without it. */
|
|
if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
|
|
document.getElementById("search_menubutton").style.display = "none";
|
|
}
|
|
/* Used by the Hide/Show button beside syntax diagrams, to toggle the */
|
|
function hideorshow(btn,obj){
|
|
var x = document.getElementById(obj);
|
|
var b = document.getElementById(btn);
|
|
if( x.style.display!='none' ){
|
|
x.style.display = 'none';
|
|
b.innerHTML='show';
|
|
}else{
|
|
x.style.display = '';
|
|
b.innerHTML='hide';
|
|
}
|
|
return false;
|
|
}
|
|
</script>
|
|
</div>
|
|
|
|
|
|
|
|
<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>
|
|
|
|
<ul>
|
|
<li><p>Get a copy of the prebuilt binaries for your machine, or get a copy
|
|
of the sources and compile them yourself. Visit
|
|
the <a href="download.html">download</a> page for more information.</p></li>
|
|
</ul>
|
|
|
|
<h2>Create A New Database</h2>
|
|
|
|
<ul>
|
|
<li><p>At a shell or DOS prompt, enter: "<b>sqlite3 test.db</b>". This will
|
|
create a new database named "test.db". (You can use a different name if
|
|
you like.)</p></li>
|
|
<li><p>Enter SQL commands at the prompt to create and populate the
|
|
new database.</p></li>
|
|
<li><p>Additional documentation is available <a href="cli.html">here</a>.</li>
|
|
</ul>
|
|
|
|
<h2>Write Programs That Use SQLite</h2>
|
|
|
|
<ul>
|
|
<li><p>Below is a simple
|
|
<a href="http://www.tcl-lang.org">TCL program</a> that demonstrates how to use
|
|
the TCL interface to SQLite. The program executes the SQL statements
|
|
given as the second argument on the database defined by the first
|
|
argument. The commands to watch for are the <b>sqlite3</b> command
|
|
on line 7 which opens an SQLite database and creates
|
|
a new object named "<b>db</b>" to access that database, the
|
|
use of the <a href="tclsqlite.html#eval">eval method</a> on the <b>db</b> object on line 8 to run
|
|
SQL commands against the database, and the closing of the database connection
|
|
on the last line of the script.</p>
|
|
|
|
<blockquote><pre>
|
|
01 #!/usr/bin/tclsh
|
|
02 if {$argc!=2} {
|
|
03 puts stderr "Usage: %s DATABASE SQL-STATEMENT"
|
|
04 exit 1
|
|
05 }
|
|
06 package require sqlite3
|
|
07 <b>sqlite3</b> db [lindex $argv 0]
|
|
08 <b>db</b> eval [lindex $argv 1] x {
|
|
09 foreach v $x(*) {
|
|
10 puts "$v = $x($v)"
|
|
11 }
|
|
12 puts ""
|
|
13 }
|
|
14 <b>db</b> close
|
|
</pre></blockquote>
|
|
</li>
|
|
|
|
<li><p>Below is a simple C program that demonstrates how to use
|
|
the <a href="c3ref/intro.html">C/C++ interface</a> 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 <a href="c3ref/open.html">sqlite3_open()</a> on line 22 which opens
|
|
the database, <a href="c3ref/exec.html">sqlite3_exec()</a> on line 28 that executes SQL
|
|
commands against the database, and <a href="c3ref/close.html">sqlite3_close()</a> on line 33
|
|
that closes the database connection.</p>
|
|
|
|
<p>See also the <a href="cintro.html">Introduction To The SQLite C/C++ Interface</a> for
|
|
an introductory overview and roadmap to the dozens of SQLite interface
|
|
functions.</p>
|
|
|
|
<blockquote><pre>
|
|
01 #include <stdio.h>
|
|
02 #include <sqlite3.h>
|
|
03
|
|
04 static int callback(void *NotUsed, int argc, char **argv, char **azColName){
|
|
05 int i;
|
|
06 for(i=0; i<argc; i++){
|
|
07 printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
|
|
08 }
|
|
09 printf("\n");
|
|
10 return 0;
|
|
11 }
|
|
12
|
|
13 int main(int argc, char **argv){
|
|
14 <b>sqlite3</b> *db;
|
|
15 char *zErrMsg = 0;
|
|
16 int rc;
|
|
17
|
|
18 if( argc!=3 ){
|
|
19 fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
|
|
20 return(1);
|
|
21 }
|
|
22 rc = <b>sqlite3_open</b>(argv[1], &db);
|
|
23 if( rc ){
|
|
24 fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
|
25 <b>sqlite3_close</b>(db);
|
|
26 return(1);
|
|
27 }
|
|
28 rc = <b>sqlite3_exec</b>(db, argv[2], callback, 0, &zErrMsg);
|
|
29 if( rc!=SQLITE_OK ){
|
|
30 fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
|
31 <b>sqlite3_free</b>(zErrMsg);
|
|
32 }
|
|
33 <b>sqlite3_close</b>(db);
|
|
34 return 0;
|
|
35 }
|
|
</pre></blockquote>
|
|
<p>See the <a href="howtocompile.html">How To Compile SQLite</a> document for instructions and hints on
|
|
how to compile the program shown above.
|
|
</li>
|
|
</ul>
|
|
|