"Igor Tandetnik" <[EMAIL PROTECTED]> writes:
> "Nikolaus Rath" <[EMAIL PROTECTED]> wrote in
> message news:[EMAIL PROTECTED]
>> What happens if
>>
>> 1. I prepare and execute a select statement
>> 2. I retrieve a couple of rows
>> 3. I execute a new query that would change the result of the
>>    query in 1
>
> On the same connection, I assume.

Yes.

>> 4. I continue to retrieve the results of 1)
>>
>> Will I get the results as if step 3 hasn't happened, is the result
>> undefined, or will my result set somehow be updated?
>
> You may or may not see the changes introduced by step 3. E.g. if
> step 3 updates a record that you've already visited, you naturally
> won't visit it again and thus won't see the changes. But if it
> updates a record you haven't visited yet, when you get to it you
> will see the new data.

This doesn't seem right when I test it. "numbers" is a table with one
column containing the numbers 1 to 10. When using the python
interface:

>>> import apsw
>>> conn=apsw.Connection("data")
>>> cursor = conn.cursor()
>>> res = cursor.execute("select * from numbers")
>>> res.next()
(1,)
>>> res.next()
(2,)
>>> res.next()
(3,)
>>> cursor.execute("delete from numbers where no=5")
>>> res.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration


So as soon as I make a change in the database, I do not get any more
results. If I understood you correctly, I should have gotten (4,)
instead.

Is this a bug?


Best,


   -Nikolaus

-- 
 »It is not worth an intelligent man's time to be in the majority.
  By definition, there are already enough people to do that.«
                                                         -J.H. Hardy

  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to