bsddb.btopen()

Discussion in 'Python' started by Anthony McDonald, Aug 13, 2003.

  1. PythonWin 2.3 (#46, Jul 29 2003, 18:54:32) [MSC v.1200 32 bit (Intel)] on
    win32.
    Portions Copyright 1994-2001 Mark Hammond () - see
    'Help/About PythonWin' for further copyright information.
    >>> import os
    >>> import bsddb
    >>> os.chdir("c:/test")
    >>> my_data = bsddb.btopen("testing", 'c')
    >>> for i in range(10):

    .... if i == 5:
    .... pass
    .... else:
    .... my_data['%d'%i] = '%d'% (i*i)
    ....
    >>> my_data.keys()

    ['0', '1', '2', '3', '4', '6', '7', '8', '9']
    >>> my_data.sync()


    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
    my_data.set_location('6')
    >>> my_data.set_location('5')

    Traceback (most recent call last):
    File "<interactive input>", line 1, in ?
    File "C:\Python23\lib\bsddb\__init__.py", line 117, in set_location
    return self.dbc.set(key)
    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".

    >>> my_data.previous()

    ('9', '81')

    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?

    TonyM
    Anthony McDonald, Aug 13, 2003
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John D.

    problems importing "bsddb"

    John D., Aug 12, 2003, in forum: Python
    Replies:
    0
    Views:
    290
    John D.
    Aug 12, 2003
  2. Jane Austine
    Replies:
    0
    Views:
    310
    Jane Austine
    Aug 14, 2003
  3. Harry Pehkonen
    Replies:
    3
    Views:
    419
    Skip Montanaro
    Sep 1, 2003
  4. Neville C. Dempsey
    Replies:
    0
    Views:
    360
    Neville C. Dempsey
    Jun 12, 2005
  5. Skip Montanaro
    Replies:
    1
    Views:
    385
    Bengt Richter
    Jun 26, 2005
Loading...

Share This Page