As far as Boolean field type goes, I chose NULL because I wanted a default of False. Which it isn't.
But, I will be setting it to False on the New Record event.
Use DEFAULT 0 ("Zero" as an Integer). No need for "NewRecord" or whatever
SQLite has no dedicated Boolean-Datatype. Boolean gets "translated" to integer in the background.
I do have such an application currently, where i have Boolean-Fields in the Database, and they are just Integers (0=False, everything else=True)
As far as setting up SQL statements for SELECT, UPDATE, I currently let Lazarus or SQLite handle that with where changed. Since I am fairly (read, Noob) new to this, is that bad or how do you write and update where you don't know what has changed? Adding a static statement doesn't seen correct to me. Please set me straight. 
Craig
Don't!
As i wrote: Don't use "SELECT * FROM" for your Select-Statement. Write it out, and assign it to the SQL-Property
As for INSERT/UPDATE: The same: write it out, but you have to follow the "Rules"
e.g. INSERT (That's one of my own Statements currently in Production)
INSERT INTO tbl_employees(EmployeeNumber, FirstName, LastName, IsActive, PowerUserID) VALUES(:EmployeeNumber, :FirstName, :LastName, :IsActive, :PowerUserID);
Note the Colons in the Value-Part --> ParameterNames MUST be the Same as the Fieldnames prepended with a colon
Note thate my Primary Key "ID" doesn't appear here!
Write it out, test it, then assign it to "InsertSQL"
e.g. UPDATE (That's one of my own Statements currently in Production)
UPDATE tbl_employees SET EmployeeNumber=:EmployeeNumber, FirstName=:FirstName, LastName=:LastName, IsActive=:IsActive, PowerUserID=:PowerUserID WHERE ID=:OLD_ID;
Important: Note the LAST Parameter :OLD_ID
"ID" is my Primary Key
In your case it would be ":OLD_UID"
Write it out, test it, then assign it to "UpdateSQL"
There is a reason, why i'm a proponent of "writing out" the statements:
There might be Fields in your Database, you don't want to or are not allowed to Update
There might be Fields in your Database, you are not allowed to Insert a Value
A "classic" is a Generated Column "FullName", which Combines FirstName and LastName on the DB-Side!! --> No INSERT or UPDATE allowed
Another reason is, if your initial SELECT-Statement contains JOINS of 2 or more tables, then you'll get a problem with "automagically" created InsertSQL/UpdateSQL
I'll leave the DeleteSQL for you
