SpecTcl Sqlite3 interfaces

Ron Fox

Table of Contents
1. Introduction
2. What you can do with the SpecTcl Sqlite database package.
3. C++ Low level API
3.1. SpecTclDB::CDatabase
3.2. The SpecTclDB::SaveSet class.
4. SpecTcl classes that record event data
4.1. Lower layer of SpecTcl's event recording/playback code.
4.2. Upper layer of SpecTcl's event recording/playback code.
5. Tcl bindings to the C++ API
6. SpecTcl API to the database.
7. The SpecTcl database GUI.
7.1. The GUI Menubar
7.2. Pop Up context menus
A. Reference material
A.1. Reference material for the C++ API classes.
CDatabase -- Database creation and access
SaveSet -- Encapsulate a save set.
DBParameter -- Encapsulate database parameter definitions.
DBSpectrum -- Encapsulate Spectrum definitions.
DBGate -- Encapsulate database gate definitions
DBApplication -- Wrap database definitions of gate applications
DBTreeVariable -- Ecapsulate tree variable definitions.
A.2. Object oriented Sqlite3 wrapper
CSqlite -- Connection to Sqlite3
CSqliteException -- Exception class for libsqlite3pp
CSqliteStatement -- Executes SQLite3 statements
CSqliteTransaction/CSqliteSavePoint -- Encapsulate Sqlite transactions/savepoints
CSqliteWhere -- Classes to build up WHERE clauses.
A.3. Tcl bindings to the C++ API
A.3.1. Raw Tcl API
A.3.2. SpecTcl API
A.3.3. Event recording API
A.4. Database schema.
A.4.1. Storing event data
List of Figures
7-1. The SpecTcl database GUi window
List of Examples
3-1. Createing an empty database (makedb.cpp)
3-2. Creating savesets in a database (makesaveset.cpp)
3-3. Listing savesets (lssaveset.cpp)
3-4. Defining parameters (pardef.cpp)
3-5. Defining Spectra (specdef.cpp)
3-6. Defining gates (gatedef.cpp)
3-7. Applying gates to spectra (applydef.cpp)
3-8. Saving and recovering tree variables (vardef.cpp)
3-9. Storing event data (evtstore.cpp)
3-10. Recovering event data (evtget.cpp)
3-11. Storing scaler readouts (sclstore.cpp)
3-12. Recovering scaler readouts (sclget.cpp)
5-1. Creating an empty database in Tcl (makedb.tcl)
5-2. Creating savesets in a database (makesaveset.tcl)
5-3. Listing savesets in a database (lssaveset.tcl)
5-4. Defining parameters (pardef.tcl)
5-5. Defining Spectra (specdef.tcl)
5-6. Defining gates (gatedef.tcl)
5-7. Applying gates to spectra (applydef.tcl)
5-8. Saving and recovering tree variables (vardef.tcl)
5-9. Storing spectrum contents (specstore.tcl)
6-1. dbconfig - creating and connecting to a database
7-1. Incorporating the database GUI in your SpecTcl
A-1. How transactions are usually used