Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Update the TCL binding documentation to describe the newly added ability to specify TCL variable names in the body of an SQL statement. (CVS 1904) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b3b9e58103dd6c65c55caf9a25bc1c25 |
User & Date: | drh 2004-08-26 01:12:14.000 |
Context
2004-08-28
| ||
01:12 | Add sqlite_temp_directory to the windows driver. (CVS 1905) (check-in: f5b0e5b0b2 user: drh tags: trunk) | |
2004-08-26
| ||
01:12 | Update the TCL binding documentation to describe the newly added ability to specify TCL variable names in the body of an SQL statement. (CVS 1904) (check-in: b3b9e58103 user: drh tags: trunk) | |
00:56 | Protect Tcl_Obj pointers from change using Tcl_IncrRefCount() while executing SQL statements in the TCL bindings. (CVS 1903) (check-in: 6199f2f243 user: drh tags: trunk) | |
Changes
Changes to www/tclsqlite.tcl.
1 2 3 | # # Run this Tcl script to generate the tclsqlite.html file. # | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # # Run this Tcl script to generate the tclsqlite.html file. # set rcsid {$Id: tclsqlite.tcl,v 1.11 2004/08/26 01:12:14 drh Exp $} source common.tcl header {The Tcl interface to the SQLite library} proc METHOD {name text} { puts "<a name=\"$name\">\n<h3>The \"$name\" method</h3>\n" puts $text } puts { <h2>The Tcl interface to the SQLite library</h2> <p>The SQLite library is designed to be very easy to use from a Tcl or Tcl/Tk script. This document gives an overview of the Tcl programming interface.</p> <h3>The API</h3> <p>The interface to the SQLite library consists of single tcl command named <b>sqlite</b> (version 2.8) or <b>sqlite3</b> (version 3.0). Because there is only this one command, the interface is not placed in a separate namespace.</p> <p>The <b>sqlite3</b> command is used as follows:</p> <blockquote> <b>sqlite3</b> <i>dbcmd database-name</i> </blockquote> |
︙ | ︙ | |||
113 114 115 116 117 118 119 | <p> The most useful <i>dbcmd</i> method is "eval". The eval method is used to execute SQL on the database. The syntax of the eval method looks like this:</p> <blockquote> <i>dbcmd</i> <b>eval</b> <i>sql</i> | | | 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | <p> The most useful <i>dbcmd</i> method is "eval". The eval method is used to execute SQL on the database. The syntax of the eval method looks like this:</p> <blockquote> <i>dbcmd</i> <b>eval</b> <i>sql</i> ?<i>array-name </i>? ?<i>script</i>? </blockquote> <p> The job of the eval method is to execute the SQL statement or statements given in the second argument. For example, to create a new table in a database, you can do this:</p> |
︙ | ︙ | |||
183 184 185 186 187 188 189 | For each column in a row of the result, the name of that column is used as an index in to array. The value of the column is stored in the corresponding array entry. The special array index * is used to store a list of column names in the order that they appear. </p> <p> | | | > > > > > > > > > > > > > > > > > > > | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 | For each column in a row of the result, the name of that column is used as an index in to array. The value of the column is stored in the corresponding array entry. The special array index * is used to store a list of column names in the order that they appear. </p> <p> If the array variable name is omitted or is the empty string, then the value of each column is stored in a variable with the same name as the column itself. For example: </p> <blockquote> <b>db1 eval {SELECT * FROM t1 ORDER BY a} {<br> puts "a=$a b=$b"<br> }</b> </blockquote> <p> From this we get the following output </p> <blockquote><b> a=1 b=hello<br> a=2 b=goodbye<br> a=3 b=howdy!</b> </blockquote> <p> Tcl variable names can appear in the SQL statement of the second argument in any position where it is legal to put a string or number literal. The value of the variable is substituted for the variable name. If the variable does not exist a NULL values is used. For example: </p> <blockquote><b> db1 eval {INSERT INTO t1 VALUES(5,$bigblob)} </b></blockquote> <p> Note that it is not necessary to quote the $bigblob value. That happens automatically. If $bigblob is a large string or binary object, this technique is not only easier to write, it is also much more efficient since it avoids making a copy of the content of $bigblob. </p> } ############################################################################## METHOD complete { <p> The "complete" method takes a string of supposed SQL as its only argument. |
︙ | ︙ |