from its original utility as a test vehicle for the SQLite library,
to a tool used by many people who want to use SQLite databases
without writing a specialized application. While the shell exposes
-many of the library features, its original design was suited for
-performing short sequences of DB operations, generally known prior
-to starting the shell.
+many of the library features, its original design was best suited
+for performing short, fixed sequences of DB operations.
-Using the shell for more complex operations can be difficult,
+Effecting more complex, algorithmically determined operations
+can be difficult,
usually requiring use of a general purpose scripting tool
to drive the sqlite3 shell.
This can work well where the task can be decomposed into
* if that token is nothing but a '.', the line is a no-op;
-* or, if it begins with anything but a '.', it is collected
-as SQL and submitted to the SQL execution (prepare/step) engine;
+* or, if it begins with anything but a '.', it is collected as SQL,
+until terminated with ';', '/' or 'go',
+then submitted to the SQL execution (prepare/step) engine.
* or, if it begins with '#', it is ignored (as a comment).
from the familiar execution environment describe above.
How to get into this alternative execution environment is described later.
-In this alernative execution environment, these critical differences exist:
+In this alternative execution environment, these critical differences exist:
* An expanded set of command words is available and readily expanded further.
initial token is not defined as a Tcl command,
but can be found as an executable
in directories named in the PATH environment variable,
-will be executed in a subprocess
+will be executed in a sub-process
(unless blocked by auto_noexec having been set.)
* The command word and arguments are collected,
## Momentary Use of Tcl Execution Environment ##
When .. is not the sole non-whitespace content of an input line group
-which has been submitted from the shell excecution environment,
+which has been submitted from the shell execution environment,
that causes argument collection and expansion to be performed
according to Tcl rules by the Tcl interpreter,
without entering and staying in the Tcl execution environment.
by attempting to find them in the shell's repertoire of dot commands.
If found (unambiguously), they are executed then,
and the result (such as it is) returned to the caller.
-So, assuming there is a dot command invocable as .dotcmd,
+So, assuming there is a dot command invokable as .dotcmd,
(which could happen if another extension provided it),
it can be found and executed from the Tcl execution environment
with arguments as collected and expanded by the Tcl interpreter.
## Summary, More to Come ##
The Tcl extension should prove useful to those who like the features
-of the sqlite3 shell but sometimes find it diffult to use programmatically.
+of the sqlite3 shell but find using it programmatically to be challenging.
A future article will cover using Tk, a graphical user interface
-toolkit originally creaated for use with Tcl, with sqlite3xt.
+toolkit originally created for use with Tcl, with sqlite3xt.
-C Fix\sCLI\smishandling\sof\sSQL\s"execute"\stokens,\sgo\sand\s/
-D 2022-04-11T23:01:18.809
+C Tcl\sextension\sdoc,\sminor\sclarifications\sand\sspelling\simprovements
+D 2022-04-11T23:08:36.402
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F doc/lemon.html efc0cd2345d66905505d98f862e1c571512def0ceb5b016cb658fd4918eb76a3
F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
F doc/shell_extend.html c2ce1584bd976613c984a0b7ea4680ef2d2c0ab0642540d730e0a899648e2294
-F doc/tcl_extension_intro.md bf404245b69db94b619287e3abf44b5e5f33736966c32bd27771bb584901b6d8
+F doc/tcl_extension_intro.md 335c738ac1b8fdd931d8be0e9bb6b06f5762e0a80f3e447fa80e681d4536d889
F doc/trusted-schema.md 33625008620e879c7bcfbbfa079587612c434fa094d338b08242288d358c3e8a
F doc/vdbesort-memory.md 4da2639c14cd24a31e0af694b1a8dd37eaf277aff3867e9a8cc14046bc49df56
F doc/vfs-shm.txt e101f27ea02a8387ce46a05be2b1a902a021d37a
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 1a7a6b6f48327fffeff1173a8e437c9989f761ce236c99478f088087a386b155
-R 3a80e1717bece816268134435893e429
+P 1a117b0388d61f72d1f5947c9092ab5b6fffda32c438baadaef3187dc52bd7ca
+R efb1b2ab8e5e6e0af9d3cf9e018beeb0
U larrybr
-Z 0d899f46c2b90edd51d4c3e4e9d0c63c
+Z e7158dd219ace34680f76887495ba3e4
# Remove this line to create a well-formed Fossil manifest.