Concurrency violation when updating SQLite database using DevArt ODBC Driver

Concurrency violation when updating SQLite database using DevArt ODBC Driver

Hi,

I'm trying to debug errors produced when updating an SQLite database using the DevArt ODBC Driver from a Win32 application. I'm using COM/MSADO in C++ to interface with the Microsoft OLE DB Provider for ODBC Drivers, which in turn uses the DevArt driver.

I can read the database no problem. I open an ADO Connection to the database using the adOpenKeyset and adLockOptimistic flags and get an ADO Recordset pointer at the end.  When I try to modify one of the columns and call Recordset.Update(), my code throws a COM error:

DB_E_CONCURRENCYVIOLATION Rowset used optimistic concurrency and the value of a column has changed since it was last read.

I've tried changing how I connect to the database using the adLockPessimistic flag, but that didn't work.
I'm not that familiar with SQLite so I'm wondering if it's a property of the DB itself that's causing the issue. I viewed the DB using DB Browser for SQLite and DBeaver but nothing stood out.

My connection string is Provider=MSDASQL.1;Persist Security Info=False;Data Source=SQLite;Extended Properties="DSN=SQLite;Database=D:\MyDatabase.db;Locking Mode=Exclusive;Synchronous=Off

Any help appreciated,

Thanks