The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

#!/usr/bin/perl
use strict;
use BerkeleyDB;
use constant DB_DEF_CACHE_SIZE => 5000000;
my %hash;

my $dbobj = tie(%hash, 'BerkeleyDB::Btree',
        -Filename    => "test.db",
        -Cachesize   => DB_DEF_CACHE_SIZE,
        -Flags       => DB_CREATE,
        -Compare     => sub { $_[0] <=> $_[1] }
        ) or die "Can't create or open DB File!\n";

# Тестовые значения
$hash{5}="0-5";
$hash{8}="6-8";
$hash{20}="9-20";
$hash{80}="21-80";

my ($key, $val);
my $cursor = $dbobj->db_cursor();

# Выборка.
$key=3;
$cursor->c_get($key, $val, DB_SET_RANGE);
print "3=$val\n";

$key=25;
$cursor->c_get($key, $val, DB_SET_RANGE);
print "25=$val\n";

$key=80;
$cursor->c_get($key, $val, DB_SET_RANGE);
print "80=$val\n";

untie %hash;
 
24.09.2004
Ключи: hash, berkeleydb, perl, database / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / SQL и базы данных / PostgreSQL специфика / Оптимизация и администрирование PostgreSQL

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру