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:      
Заголовок:
Текст:



  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor