? Анимация и создание сайтов
Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [ 104 ] 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

23.1. Интерфейс к базам данных в стиле DBM 329

удаление значений по ключу, а также методы has key() и keys(). Ключи и значения должны быть обычными строками. Кроме того, эти объекты имеют еще один метод:

close ()

Закрывает файл с базой данных.

Объекты, возвращаемые функциями dbhash.open() и gdbm.open(), имеют дополнительные методы, описанные ниже.

23.1.2 Дополнительные методы объектов, возвращаемых функцией

dbhash.open()

first ()

Возвращает кортеж с ключом и значением первой записи в базе данных. Если база данных не содержит ни одной записи, генерируется исключение KeyError. Используя методы first() и next() Вы можете обойти все записи в базе данных.

next()

Возвращает кортеж с ключом и значением следующей записи. Например, следующий код выводит все записи, содержащиеся в базе данных, не создавая их список в памяти:

к, v = db.firstO try:

print к, v к, v = db.nextO except KeyError: pass

sync()

Сбрасывает на диск все не записанные данные.

23.1.3 Дополнительные методы объектов, возвращаемых функцией

gdbm.open()

firstkey()

Возвращает ключ первой записи в базе данных. Вы можете перебрать все записи базы данных с помощью методов firstkey() и nextkey().

nextkey( key)

Возвращает ключ к записи, следующей за записью с ключом key. Следующий пример выводит ключи для всех записей, не создавая списка ключей в памяти:

к = db.firstkeyO while к != None: print к

к = db.nextkey(k)



23.2 whichdb - определение формата файла базы данных

Этот модуль определяет единственную функцию, которая пытается определить, какой модуль должен быть использован для открытия базы данных: dbm, gdbm или dbhash.

whichdb( filename)

Возвращает None - если файл filename отсутствует или к нему нет доступа на чтение, пустую строку () - если формат файла неизвестен. В остальных случаях возвращает строку с именем модуля (например, gdbm), который должен быть использован для открытия файла.

23.3 bsddb - интерфейс к библиотеке баз данных BSD

Модуль bsddb предоставляет интерфейс к библиотеке BSD db2. С помощью этого модуля Вы можете создавать и работать с файлами баз данных типа "Hash", "BTree" и "Record". Объекты, возвращаемые функциями модуля, ведут себя аналогично словарям.

Первые три аргумента всех функций одинаковы: filename - имя файла базы данных, flag - флаги, определяющие способ открытия файла, и mode - биты разрешений (по умолчанию используется 0666), которые будут установлены для файла, принимая во внимание маску разрешений (umask). Аргумент flag может иметь одно из следующих значений:

Открыть существующий файл только для чтения (используется по умолчанию).

Открыть существующий файл для чтения и записи.

Открыть файл для чтения и записи. Если файл не существует, он будет создан.

2Обычно используется библиотека версии 1.85. Начиная с Python 2.0, версия библиотеки может быть указана при сборке. Следует помнить, что версии 1.85 и 2.0 библиотеки db несовместимы.

reorganize()

Реорганизует файл базы данных, удаляя из него неиспользуемые участки. Может быть полезен после удаления большого количества записей (reorganize() - единственный метод, который может привести к уменьшению размера файла).

sync()

Сбрасывает на диск все не записанные данные.



23.3. bsddb - интерфейс к библиотеке баз данных BSD 331

Создать новую пустую базу данных (старый файл перезаписывается) и открыть ее для чтения и записи.

На платформах, поддерживающих блокировку, к флагу может быть добавлен символ l , если блокировка должна быть использована.

Остальные аргументы используются достаточно редко, Вы можете узнать об их назначении из документации к функции dbopen() библиотеки BSD db.

hashopen (filename [, flag [, mode [, bsize [, ffactor [, nelem [, cachesize [, hash [, lorder]]]]]]]]) Открывает файл базы данных в формате "Hash" и возвращает соответствующий ему объект.

btopen (filename [, flag [, mode [, btflags [, cachesize

[, maxkeypage [, minkeypage [, psize [, lorder]]]]]]]]) Открывает файл базы данных в формате "BTree" и возвращает соответствующий ему объект.

rnopen (filename [, flag [, mode [, rnflags [, cachesize

[, psize [, lorder [, reclen [, bval [, bfname]]]]]]]]]) Открывает файл базы данных в формате "Record" и возвращает соответствующий ему объект.

error

Класс исключений, которые генерируются в случае возникновения различных ошибок, характерных для этого модуля. Заметим, что если в базе данных отсутствует запись с определенным ключом, генерируется исключение KeyError.

Объекты, возвращаемые функциями hashopen() , btopen() и rnopen() , поддерживают большинство операций, характерных для отображений: извлечение, установка и удаление значений по ключу, а также методы has key() и keys() (ключи и значения должны быть обычными строками). Кроме того, доступны следующие методы:

close()

Закрывает файл с базой данных.

set location( key)

Устанавливает указатель на запись с ключом key и возвращает кортеж, содержащий ключ и значение для этой записи. Этот метод не может быть применен к объектам, созданным с помощью функции hashopen() .

first()

Возвращает кортеж с ключом и значением первой записи в базе данных. Если база данных не содержит ни одной записи, генерируется исключение KeyError. Используя методы first() и next() Вы можете обойти все записи в базе данных.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [ 104 ] 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145