Wed Aug 13 12:38:07 CEST 2003
PythonWin 2.3 (#46, Jul 29 2003, 18:54:32) [MSC v.1200 32 bit (Intel)] on
Portions Copyright 1994-2001 Mark Hammond (mhammond at skippinet.com.au) - see
'Help/About PythonWin' for further copyright information.
>>> import os
>>> import bsddb
>>> my_data = bsddb.btopen("testing", 'c')
>>> for i in range(10):
... if i == 5:
... my_data['%d'%i] = '%d'% (i*i)
['0', '1', '2', '3', '4', '6', '7', '8', '9']
Now heres where my problem is.
The documentation explicitly states that a btopen database when asked to
locate a key that doesn't exist in the dataset, will return the next sorted
key from the dataset.
So my_data.set_location('5') should return as if I'd called
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
File "C:\Python23\lib\bsddb\__init__.py", line 117, in set_location
DBNotFoundError: (-30991, 'DB_NOTFOUND: No matching key/data pair found')
Okay maybe it has positioned the cursor, but is just raising the exception
to politely tell me that I'm not pointing at the key I asked for. So
my_data.previous() will return the key/data pair for key "4".
Okay its pointing at the end of the database. Erm thats not as advertised.
Okay whats broken? Is the documentation wrong? Is my version of Python
wrong?, or do I need to drink some more coffee?
More information about the Python-list