I have just one question.
What exactly does this function do:

Private Declare Function sqlite3_changes _
Lib "SQLite3VB.dll" (ByVal DB_Handle As Long) As Long

It looks it will always give one, unless you have just created a database
and done nil with it. Is this how it is?

It returns the number of rows affected by a delete, update, or insert (not updated by selects). It's not the number _changed_, but the number of rows addressed by the WHERE clause, whether an update actually changes a value or not. One special case is when you DELETE FROM table with no where clause.. explained below.

From sqlite3.h:
/*

** This function returns the number of database rows that were changed

** (or inserted or deleted) by the most recent called sqlite3_exec().

**

** All changes are counted, even if they were later undone by a

** ROLLBACK or ABORT. Except, changes associated with creating and

** dropping tables are not counted.

**

** If a callback invokes sqlite3_exec() recursively, then the changes

** in the inner, recursive call are counted together with the changes

** in the outer call.

**

** SQLite implements the command "DELETE FROM table" without a WHERE clause

** by dropping and recreating the table. (This is much faster than going

** through and deleting individual elements form the table.) Because of

** this optimization, the change count for "DELETE FROM table" will be

** zero regardless of the number of elements that were originally in the

** table. To get an accurate count of the number of rows deleted, use

** "DELETE FROM table WHERE 1" instead.

*/


- Trey

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to