MAIN TOPIC: Opening a database
DETAIL: To open a database, use the File-> Open Database menu item and select a file from the file browser.||The file browser will be presented when a new window opens automatically.||You can also double-click a database built in MesaSQLite, and it will open a new window with a connection to that database.
MAIN TOPIC: Full file path of your database
DETAIL: To view the full file path of your database, mouse over the database selection popup in the toolbar and wait for the help tag to show.  It will show the full system file path.
MAIN TOPIC: Preferences
DETAIL: MesaSQLite is built to make viewing and editing resident data a very quick process.  Setting your preferences will help make your workflow as fast and natural as possible.  The following are default settings: ||Window opens to the position it was in when last closed||Queries in the content screen are limited to 1000 records (just 10 records in DEMO mode)|     |Your last 20 special queries are stored||Text encoding is set to Unicode8 (UTF8)
MAIN TOPIC: Table Content
DETAIL: Your content screen is designed to make creating various types of recordsets quickly.||All databases on the window's connection are available.||Once you select a table, you can build specific queries with the parameter controls directly beneath the table name.  To add parameters, hit the most senior "+" button.||Keep in mind you can have recordsets returned upon selection of the table name if you like, as a setting in the preferences pane.  You can also limit the size of the record sets in the preferences pane.||"Show All" will return all records from a table.||"Go" will return the record set defined by the parameters in front of it.||"Last XXX" will return the last XXX rows in a table.  The last entry in the table will be at the bottom of the listbox.||Note that all of these buttons will create a query to the table. The query syntax can be read in the bottom of the window.
SUBTOPIC: Text Encoding
DETAIL: Depending on the text encoding of the actual database file you are opening in Mesa, some characters may not appear at all or be shown as incorrect characters.||You can mitigate this by setting your preferred text encoding using the popupmenu at the bottom of the Table Content screen.||When you first install MesaMySQL, the encoding will be set to UTF8, which is a unicode encoding.||Your database file may be encoded for example, in Win Latin 1 (ISO-8859-1).  for text to appear correctly in the content listbox, Mesa encoding must be set to Win Latin 1.||You can set a preference in your preferences window to open Mesa with a given encoding every time a new window opens.||Recordsets shown in the Custom Query screen will be displayed using the encoding set on the Table Content popup.
SUBTOPIC: Loading Records
DETAIL: Select a table to view its records.  Records will be presented in the text encoding indicated in the popup at the bottom of the content screen.||To change the encoding for viewing, simply change the value of the popup.  The current recordset will reload in the new encoding.||To load records immediately upon table selection, set that preference in the preferences window.
SUBTOPIC: Limiting Records
DETAIL: The number of records can be limited by setting the returned row count directly in the content screen.  ||A default setting can be made in the preferences window.||To view adjacent similar sized recordsets, click the arrow toggle as needed and hit the "Go" button.||You can get the most recent records added to the table by using the "Last XXX" button.  The most recent record will be at the bottom of the table.
SUBTOPIC: Searching records
DETAIL: Add and specify as many search conditions as needed by hitting the most senior "add parameter button".  Use the "Search" button to return the matching recordset.  The number of rows returned is shown in the lower left area of the screen.  Complex searches are not supported.  You must use all "AND"s or "OR"s to set the parameters for your search.||Select a field for each parameter - after the table has been selected.||The popup for the input text field for the parameter will show you resident values in this field in the table IF the unique values do not exceed 250 in number.
SUBTOPIC: Hiding Columns
DETAIL: You can select the columns you want to view by hitting the "Limit Columns" button and using the checkboxes.  Return to viewing all rows by hitting the "Select All" button next to it.|| You can also right-click or control-click a column header to quickly choose "hide column".  To return it to visible, hit the "Select All" columns button.
SUBTOPIC: Drag Reorder Columns
DETAIL: To move a column next to another for viewing, grab the column on the header and drag it to the location you want.
SUBTOPIC: Sorting a recordset
DETAIL: Click on the title bar of a column to sort the recordset by that column.  Click it again to sort it by descending order.
SUBTOPIC: Multiple Field Sort
DETAIL: To view a multiple sort, hit the "Sort Button" and select the fields in the order you would like to see the sort.  This sort is not retained and needs to be redone each time you need it.
SUBTOPIC: Edit many rows at once
DETAIL: Select all the rows and hit the "Global Edit" button and specify the column and the data.||To select adjacent rows, shift-click the second row.||To add non-adjacent rows to the selection, use the command key-click on MAC and option-click on Windows.
SUBTOPIC: Auto-Set Column Widths
DETAIL: Make it easier to view tables with many columns by hitting the "Relax columns" button, which will stretch or shrink the column widths to a more natural width.||Text and Blob fields are left alone.
SUBTOPIC: Totaling Numeric Rows
DETAIL: Hit the calculator button to have Mesa add a row to the bottom of the table and populate it with the summation of the data in the column.||Only numeric columns are treated.
SUBTOPIC: Editing Cells
DETAIL: To edit a single cell, double click into it and make your change.||Cells with data longer than the cell itself will open in an new editor window for viewing ease.  ||Cells edits are sent to the database when the selection changes from the row on which the cells were edited.||To run down a column of edits, click into a cell and to make the edit, hit the RETURN key to move to the next row in the same column.||Hit the ENTER key to render the change only.
SUBTOPIC: Drag Select Cells
DETAIL: Click and drag on the the cells to create a set of highlighted cells which can then be copied to the clipboard.
SUBTOPIC: Capture Cells to clipboard
DETAIL: To capture selected cells to the clipboard, the cells will be orange in color, not the normal row selection color.||Use Command-C on Mac and Control-C on Windows to place the cell contents on the clipboard.  You can then paste into any other program.  If you paste into Excel, rows and columns will be preserved.||You can also use the clipboard button to place selected cells on the clipboard.||Always check formatting of pasted data after you have pasted in excel.  Columns with leading zeros are a particular issue with Excel.  For instance a New Jersey zip code such as 08083 my arrive in Excel as 8083.
SUBTOPIC: Saving a content set as VIEW
DETAIL: You can save an Table Content set as a VIEW by hitting the Save as VIEW button on the bottom of the Table Content screen and giving the VIEW a name.  The VIEW will be immediately available in the VIEWS tab.
MAIN TOPIC: Views
DETAIL: VIEWS are recordsets produced using sql SELECT statements you define.  They are most likely queries you tend to want to see with some regularity.  Views are stored in the database itself using a name you define.  Make sure you don't use a table name for a VIEW.||Since VIEWS are created by select statements, their resulting rows are not in-line editable like the Table Content recorsets, which have their primary key available for unique identification.  Also, VIEWS  may contain data from any number of tables.  As a result, VIEW recordsets are read-only.
SUBTOPIC: Create, Drop, Duplicate VIEW
DETAIL: Using the three right hand buttons along the bottom of the VIEWS screen, you can create, drop, or duplicate a view.||VIEWS are not editable.  To edit a view, you will need to DROP a VIEW and CREATE a new one.
MAIN TOPIC: Custom Queries
DETAIL: Type any sql query into the edit field and hit "Run Query" to view the results.||Any errors will be reported below the results listbox.||Queries that change table rows will show the number of effected rows below the results listbox.||Queries typed into the query field are passed directly to the MySQL server.||To learn syntax, go to:||http://www.sqlite.org/lang.html
SUBTOPIC: Saving Special queries
DETAIL: By default, your last 20 queries are saved locally on your machine.  This number can be adjusted in the preferences pane.||To save a query to favorites, select "Save Query to Favorites" from the popupmenu and give it a name.  You can save any number of favorites.  To manage your favorites, select "Edit Favorites" from the favorites popup.
SUBTOPIC: Special Functions
DETAIL: 
SUBTOPIC: Auto-Set Column Widths
DETAIL: Make it easier to view tables with many columns by hitting the "Relax columns" button, which will stretch or shrink the column widths to a more natural width.  Text and Blob fields are left alone.
SUBTOPIC: Totaling Numeric Rows
DETAIL: Hit the calculator button to have Mesa add a row to the bottom of the table and populate it with the summation of the data in the column.  Only numeric columns are treated.
MAIN TOPIC: Structure
DETAIL: The structure screen allows you to:||   * create and delete databases|   * create and delete tables on those databases|   * add, edit, and delete fields on those tables|   * add and delete indexes on the tables|   * set the encoding for a given table||and view the details associated with all of the above.
SUBTOPIC: Creating a unique record id
DETAIL: If you don't want to read the whole post then just do this: Every time you create a table with sqlite make sure to have an INTEGER PRIMARY KEY AUTOINCREMENT column (the rowid column will be an alias to this one).||If you have some time then read on...||A lot of people don't realize that a rowid can change (I was part of the group until some time ago). As always a simple example worths more than 1000 words in my bad English :-)|You can test this example with SQLiteManager.||Create a table without a primary key:|CREATE TABLE test (name TEXT);||Insert some data into the table:|INSERT INTO test (name) VALUES ('marco');|INSERT INTO test (name) VALUES ('giuly');|INSERT INTO test (name) VALUES ('gregory');|INSERT INTO test (name) VALUES ('house');||Perform the query SELECT rowid,* FROM test;|Here it is the result:|1 marco|2 giuly|3 gregory|4 house||Everything is fine until this point...|Now delete a couple of rows:|DELETE FROM test WHERE name='marco';|DELETE FROM test WHERE name='gregory';||Now perform again: SELECT rowid,* FROM test;|Here it is the result:|2 giuly|4 house||Everything is fine, no?|That's cool...||Now, perform a VACUUM on the database and run again the query:|SELECT rowid,* FROM test;|Here it is the result:|1 giuly|2 house||Rowids are changed!!!! So please take extra care when you define a table and need to reference records using rowids.|From the official documentation: "Rowids can change at any time and without notice. If you need to depend on your rowid, make it an INTEGER PRIMARY KEY, then it is guaranteed not to change". And I add also AUTOINCREMENT so you are sure that the same rowid(s) are not reused when rows are deleted.||Special thanks to Mike Bailey for pointed out this issue.
SUBTOPIC: AutoIncrement in SQLite3
DETAIL: A column declared INTEGER PRIMARY KEY will autoincrement.  Such a structure will be shown with a mixed-state checkbox in the Auto Increment column in the structure screen.   Such a column definition will make sure a new record will get an auto increment value that is higher than any other in the table, but might use a value that has used in the past, if records have been deleted.  The CREATE TABLE syntax for this table will not show the words AUTO INCREMENT.||If you check the AUTO INCREMENT checkbox for an INTEGER PRIMARY KEY field in the structure tab, the auto increment function is handled a little differently.  A new record will have an integer value in the primary key column higher than any other than has ever been used in that field, even if records have been deleted from the table.  The CREATE TABLE syntax for this table WILL include the words AUTO INCREMENT.
SUBTOPIC: Show CREATE TABLE syntax
DETAIL: SQLite has a sql_master table that holds the structurer of your databasse. To see the SQL version of the structure of the table, you can use:||select * from sqlite_master where type = 'table'||-|or|-||select sql from sqlite_master where type = 'index'||These commands can be typed directly into the special query field.||MesaSQLite dumps use this command to record the table structure to a text file so it can be recreated on import.||Read about other PRAGMA commands here:|http://www.sqlite.org/pragma.html
SUBTOPIC: Create a new database
DETAIL: If you have the necessary privileges, you can create a new database on the server using the Add Database button under the database name.||If you do not have the necessary privileges, a message box will let you know upon an attempt to create a new database.
SUBTOPIC: Add a table to a database
DETAIL: Add, delete, or duplicate a table using the buttons under the tables listbox.||When duplicating a table, check the checkbox if you want to the table to load the data as well as the structure of the table you are duping.
SUBTOPIC: Rename a table
DETAIL: Double click into the table listbox on the structure screen and edit the table name as needed.  When the edit cell loses the focus, the name change will take affect.
SUBTOPIC: Add a field to a table
DETAIL: Add, edit, or duplicate a field using the buttons under the fields listbox.||If you are a beginner, you will want to concern yourself with the following columns:||Field name:  make these unique and try not to use words that may be too similar to standard code needed in administering databases.  Examples of questionable names for a field would be: "index" or "key".||Type: ||Read about data types here:|http://www.sqlite.org/datatype3.html||You will want to include an auto-increment primary key to every table so that records can be uniquely identified.  This is usually the first field in the table.  Auto-increment is found in the "Extra" column of the Fields listbox.||If you want a value to be placed in the field automatically upon creation of a new record, place that value in the default column.  for example, if you want the "maxcount" field of a table you are creating to default to "100" then put "100" in the default column.
SUBTOPIC: Duplicate a field
DETAIL: Hit the duplicate field button to duplicate a field in a given table.  Give it a unique name.
SUBTOPIC: Add an index to a table
DETAIL: Indexed tables can speed queries by 100 times or more.  It is important to index your tables on the fields you think you will using for common queries on large data sets.||If your tables have few records, indexing is not as important.||If you share server space with other databases and their users, and you have large tables, and you don't index, you can be slowing everyone down and likewise, if they have large tables and do not index, your queries can come back much slower than they should.||CREATE INDEX|sql-statement ::= 	CREATE [UNIQUE] INDEX [IF NOT EXISTS] [database-name .] index-name|ON table-name ( column-name [, column-name]* )|column-name ::= 	name [ COLLATE collation-name] [ ASC | DESC ]||The CREATE INDEX command consists of the keywords "CREATE INDEX" followed by the name of the new index, the keyword "ON", the name of a previously created table that is to be indexed, and a parenthesized list of names of columns in the table that are used for the index key. Each column name can be followed by one of the "ASC" or "DESC" keywords to indicate sort order, but the sort order is ignored in the current implementation. Sorting is always done in ascending order.||The COLLATE clause following each column name defines a collating sequence used for text entires in that column. The default collating sequence is the collating sequence defined for that column in the CREATE TABLE statement. Or if no collating sequence is otherwise defined, the built-in BINARY collating sequence is used.||There are no arbitrary limits on the number of indices that can be attached to a single table, nor on the number of columns in an index.||If the UNIQUE keyword appears between CREATE and INDEX then duplicate index entries are not allowed. Any attempt to insert a duplicate entry will result in an error.||The exact text of each CREATE INDEX statement is stored in the sqlite_master or sqlite_temp_master table, depending on whether the table being indexed is temporary. Every time the database is opened, all CREATE INDEX statements are read from the sqlite_master table and used to regenerate SQLite's internal representation of the index layout.||If the optional IF NOT EXISTS clause is present and another index with the same name aleady exists, then this command becomes a no-op.||Indexes are removed with the DROP INDEX command.
SUBTOPIC: Change the headings on the index list
DETAIL: For slightly more descriptive names for the columns in the index listbox, hit the Mesa button to the right of the listbox.||Read about indexes in MySQL here:|http://dev.mysql.com/doc/refman/4.1/en/show-index.html
SUBTOPIC: Using Timestamp
DETAIL: Starting with version SQLite version 3.1.0, the default value of a field may also be one of the special case-independant keywords CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP. If the value is NULL, a string constant or number, it is literally inserted into the column whenever an INSERT statement that does not specify a value for the column is executed. If the value is CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP, then the current UTC date and/or time is inserted into the columns. For CURRENT_TIME, the format is HH:MM:SS. For CURRENT_DATE, YYYY-MM-DD. The format for CURRENT_TIMESTAMP is "YYYY-MM-DD HH:MM:SS".
MAIN TOPIC: Foreign Keys
DETAIL: Foreign key syntax is supported in SQLite3, but referential integrity is not enforced.  You can view the foreign key syntax for a column in a table's SHOW CREATE TABLE text, viewable on the structure screen.||On the Foreign Keys tab, you can use the "Add Foregin Key" button to create a relationship between two tables using the Primary Key field of the Primary table.  This procedure will store the Foreign Key syntax in the CREATE TABLE text by recreating the table using a temporary table and reinserting your records.||To actually enforce the reference between the two tables, SQLite uses TRIGGERS.  MesaSQLite creates 3 triggers to do the job.  One is for INSERT, one for UPDATE, and one for DELETE.  ON DELETE CASCADE is an option in the creation of the TRIGGERS. ||After creating a foreign key in MesaSQLite, you can view the syntax of the three TRIGGERS on the Foreign Key screen.||Triggers were added to SQLite version 2.5, so most users can take advantage of this feature.
MAIN TOPIC: Export Data
DETAIL: 
MAIN TOPIC:   Exporting TAB, CSV, Excel
DETAIL: MesaSQLite is designed to help you get your data out and make is available to other data management software.  When exporting your content screen recordset, custom query recordset, or a table, you can select from a TAB delimited file, a Comma Separated File, or Excel spreadsheet.||When the "Save as" dialogue box comes up to save your export, if you have set your preferences to hide file extensions, no file extension will drop into the Filename field.  To have your file recognized as a delimited file, you may want to add a ".csv", ".tab", or ".xls" extension to the filename before saving it.  If your preferences are set show file extensions, the extension will be propagated automatically.||The Excel export is really a tab delimited file with an application tag to open in excel.||To stop an export while it is happening, hit Esc on Windows and Command-. on the Mac.  The target file will not appear after cancel.||Keep in mind that a TAB delimited file has fields in a record separated by tab characters and records separated by carriage returns.  The inherent problem in this format, though it is a very powerful tool, is that tabs must be removed from the content of each field.  If your export will be reimported into a database engine, you will probably want to escape special characters, of which the tab character is one.  In this case, tab characters will be replaced with "\t", a combination that will be recognized by most database engines as the tab character.  If you are exporting to use in excel or other text environment, you may want to skip the "escape special characters" option in which case the TABs will be replaced with an empty text string.||Comma separated exports enclose each field's contents in quotations, a convention that is common, but not universal.  The reason for using the quotations is so the beginning and the end of the field are known, and commas, within the content of the field do not need to be removed or escaped.  Fields are separated by commas and records are separated by carriage returns.||Excel does well opening a comma separated file written in this style.||I always check "Include Fieldname as first record" so that if the export file is opened in any other program, you essentially have column headers for the rest of the records.
MAIN TOPIC: Import Data
DETAIL: Getting data in is a big one.  As a person who helps people create and manage data, I have seen more smart people struggle with this more than any other basic data management issue.||MesaSQLite makes it easy to get data into your databases.||To stop an import while it is happening, hit Esc on Windows and Command-. on the Mac.||If you have trouble getting data in for whatever reason we want to hear from you.
SUBTOPIC: Importing an Excel file
DETAIL: Excel files are fat files, filled with application specific tags that are not needed nor helpful to a database engine.  To import an excel file, first save a copy of it as a TAB delimited file.  I typically save it to the desktop, knowing it is a temporary file that I will be discarding after import.  Saving it as a TAB will strip all the Excel specific bytes from the file and allow a smooth import.||Excel is probably the best application out there for getting data ready to be imported into a database.  I rely on it heavily to help people get data into their databases.  Formatting is done in the excel spreadsheet to get it looking right, then it is saved into a TAB file, then imported into the database through MesaSQLite.||Use:  File -> Import CSV/TAB ||menu item to begin the import process.  You will be presented with a list of tables.  Select the table into which you want to import the CSV or TAB file.  The target file does not need to an identical set of fields for the import to succeed.||After you select the file to import, you will be asked to map the fields in the import file with the fields in the selected table.  Drag to reorder the database fields to match the import file fields and then click the map listbox to place an arrow at the fields you want to have imported.||WARNING - IF YOU HAVE AN AUTO-INCREMENT FIELD IN YOUR TABLE, YOU MAY NOT WANT TO MAP THIS FIELD.  IF THERE ARE RECORDS IN THE IMPORT FILE WITH THE SAME "SERIAL" OR AUTO INCREMENT FIELD VALUE, THEY WILL FAIL TO IMPORT DUE TO A DUPLICATE ENTRY ERROR.  IF THE AUTO_INCREMENT FIELD IS NOT MAPPED, NOT SUCH ERROR WILL OCCUR AND THE AUTO_INCREMENT WILL OCCUR ON ENTRY.||
SUBTOPIC: Importing a TAB or CSV file
DETAIL: TAB (Tab delimited text) files may have a field extension of ".tab" or ".txt" typically.  MesaSQLite exports in the TAB format will carry a file extension of ".tab" so there is no doubt what it is.||CSV (comma separated text or comma delimited text) files may have a file extension of ".csv" or ".txt".  They are almost always ".csv".  MesaSQLite exports in this format will have a ".csv" extension.||Use:  File -> Import CSV/TAB||Next, select the table into which you are going to be importing your records.||Next, select the file to import.||In the import wizard, map the field matches and confirm them with the "->" map symbol.  Be careful with auto-incremented fields.  You may not want to declare a map for them because you may run into a duplicate key error - where two records are trying to have the same unique number in that field.  If you do not map the auto_increment field, the database engine will do the proper auto-increment for you.||After your import, you will have one record that contains no actual data, but rather the names of the fields that you imported.  You may want to delete that record after import...
SUBTOPIC: Proper CSV form
DETAIL: Mesa uses the following standards when creating a CSV file or parsing and importing a CSV file:||Each record is one line   ...but|A record separator may consist of a line feed (ASCII/LF=0x0A), or a carriage return and line feed pair (ASCII/CRLF=0x0D 0x0A).|...but: fields may contain embedded line-breaks (see below) so a record may span more than one line.||Fields are separated with commas.|Example John,Doe,120 any st.,"Anytown, WW",08123||Leading and trailing space-characters adjacent to comma field separators are ignored.|So   John  ,   Doe  ,... resolves to "John" and "Doe", etc. Space characters can be spaces, or tabs.||Fields with embedded commas must be delimited with double-quote characters.|In the above example. "Anytown, WW" had to be delimited in double quotes because it had an embedded comma.||Fields that contain double quote characters must be surounded by double-quotes, and the embedded double-quotes must each be represented by a pair of consecutive double quotes.|So, John "Da Man" Doe would convert to "John ""Da Man""",Doe, 120 any st.,...||A field that contains embedded line-breaks must be surounded by double-quotes|So:|  Field 1: Conference room 1  |  Field 2:|    John,|    Please bring the M. Mathers file for review  |    -J.L.|  Field 3: 10/18/2002|  ...|would convert to:||  Conference room 1, "John,  |  Please bring the M. Mathers file for review  |  -J.L.|  ",10/18/2002,...||Note that this is a single CSV record, even though it takes up more than one line in the CSV file. This works because the line breaks are embedded inside the double quotes of the field.||Implementation note: In Excel, leading spaces between the comma used for a field sepparator and the double quote will sometimes cause fields to be read in as unquoted fields, even though the first non-space character is a double quote. To avoid this quirk, simply remove all leading spaces after the field-sepparator comma and before the double quote character in your CSV export files.||Fields with leading or trailing spaces must be delimited with double-quote characters.|So to preserve the leading and trailing spaces around the last name above: John ,"   Doe   ",...||Usage note: Some applications will insist on helping you by removing leading and trailing spaces from all fields regardless of whether the CSV used quotes to preserve them. They may also insist on removing leading zeros from all fields regardless of whether you need them. One such application is Excel. :-( For some help with this quirk, see the section below entitled Excel vs. Leading Zero & Space.||Fields may always be delimited with double quotes.|The delimiters will always be discarded.||Implementation note: When importing CSV, do not reach down a layer and try to use the quotes to impart type information to fields. Also, when exporting CSV, you may want to be defensive of apps that improperly try to do this. Though, to be honest, I have not found any examples of applications that try to do this. If you have encountered any apps that attempt to use the quotes to glean type information from CSV files (like assuming quoted fields are strings even if they are numeric), please let me know about it.||The first record in a CSV file may be a header record containing column (field) names|There is no mechanism for automatically discerning if the first record is a header row, so in the general case, this will have to be provided by an outside process (such as prompting the user). The header row is encoded just like any other CSV record in accordance with the rules above. A header row for the multi-line example above, might be:|  Location, Notes, "Start Date", ...||-text taken from http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm
MAIN TOPIC: Text Encoding
DETAIL: I have had more than a few confusing and frustrating moments getting data in and out of a database and have it look the way I want.||Your text encoding setter makes all that quite a bit easier.  Technically, data stored in your database is a string of bytes with an associated encoding.  As a result, when you want to view that data, it doesn't matter too much what the encoding is at the database storage level, because you can always grab those bytes and give them the encoding you want for veiwing.||This is essentially what MesaSQLite does.  When each piece of data comes out of the database, it is encoded with the encoding you have specified in your preferences.||When you change the encoding on the content screen, your last recordset will reload in the new encoding.
MAIN TOPIC: EXPLICIT TRANSACTIONS
DETAIL: SQLite 3 allows you to perform changes to your database without committing them permanently to the database file.  When you set your databases to open in|| AUTOCOMMIT mode, all changes you make in the course of your work are immediately rendered as permanent changes.  You can set your databases to open in AUTOCOMMIT or not in the preferences window.||When AUTOCOMMIT is turned off in the toolbar, you are working in the EXPLICIT mode.||In EXPLICIT mode, you can begin recording changes to the buffer by hitting the BEGIN button in the toolbar.  You can then work as normal, seeing the changes being made to the database IF you were to commit them.  Essentially, you can work more freely without the worry of destroying data or making a mistake.  The ROLLBACK button takes the database back to its state prior to the BEGIN event.  COMMIT ends the transaction and renders your changes permanently.||SQLite has a built-in function that begins a transaction intrinsically when you are in EXPLICIT mode when an operation takes place that changes the database in any way.  This in-transaction state will be reflected in the toolbar by dimming the BEGIN button.
MAIN TOPIC: Encrypting Your Database File
DETAIL: To make your database more secure, use the menuitem:||File -> Encrypt...||and simply create a password.||You will need the password every time you open the database.  To decrypt the database permanently, use the menuitem:||File -> Descrypt...
MAIN TOPIC: Install
DETAIL: MesaSQLite install just two files on your computer.  The first is your executable file; the actual application.  The second is created when the application is run to store your preferences.  There are no hidden files installed.||MesaSQLite preferences are kept at the user level.  So MesaSQLite theoretically could be registered multiple times on the same machine for different users, each having their own preferences.
MAIN TOPIC: Uninstall
DETAIL: To uninstall MesaSQLite, drag MesaSQLite to the trash.  To remove the preferences file, go to Home:Library:Preferences and look for MesaSQLite.plist and drag it to the trash.||If MesaSQLite has been registered for multiple users on the same machine, there will be multiple preferences files, each located at the above relative path for each user...