[TransWarp] Strange EntityDM behavior
Phillip J. Eby
pje at telecommunity.com
Tue Oct 7 22:59:40 EDT 2003
At 06:47 PM 10/7/03 -0700, John Landahl wrote:
>On Tuesday 07 October 2003 01:32 pm, Phillip J. Eby wrote:
> > It doesn't work "either way", actually. Your code uses app.db() for the
> > query at the end, which fails with an "OperationalError: database locked",
> > because the TableDM is using its own DB connection. Thus, there are two
> > connections with ongoing transactions to the same file, which SQLite
> > doesn't allow.
>Ah, alright. That would explain why nothing was saved to the database in the
>test program, which wasn't a problem in my actual application. I didn't see
>any exceptions or failures, though. Where did you see the OperationalError?
At the end, when it does the 'select'. The App.db object issues a
begin-transaction at the time of the select, and SQLite complained that the
DB was already locked (by the TableDM's db connection).
My tests were run on Windows, though, so maybe I had different semantics in
effect than for your test. Anyway, once I changed the TableDM to Obtain()
the shared db connection, the locking error went away.
More information about the PEAK