есть такой код:
Db berk(NULL,0);
if (berk.open(NULL,"/tmp/mybase.db",NULL,DB_BTREE,DB_CREATE,0))
std::cout << "error opening" << std::endl;
char * c_data ="fun";
int i_key = 777;
Dbt key(&i_key,sizeof(i_key)),
data(c_data,sizeof(char) * (strlen(c_data)+1));
if (berk.put(NULL,&key,&data,NULL)!=0)
std::cout << "error putting" << std::endl;
if (berk.sync(NULL)!=0)
std::cout << "error sync" << std::endl;
if (berk.close(NULL)!=0)
std::cout << "error close" << std::endl;
Db berk2(NULL,0);
if (berk2.open(NULL,"/tmp/mybase.db",NULL,DB_BTREE,NULL,0))
std::cout << "error opening" << std::endl;
c_data = "nuf";
Dbt key_r, data_r;
key_r.set_data(&i_key);
key_r.set_ulen(sizeof(i_key));
int res;
try {
res =berk2.get(NULL,&key_r,&data_r,0);
} catch (DbException &e) {
std::cout << "except " <<e.what() << std::endl;
}
if (res == DB_NOTFOUND)
std::cout << "error getting" << std::endl;
else {
c_data = (char *) data_r.get_data();
std::cout << "value: " <<c_data <<std::endl;
}
berk2.close(NULL);
этот код всегда возвращает "error getting". Почему?
ps сори за пред. пост =)
Ответ на:
комментарий
от bugmaker
Ответ на:
комментарий
от ale
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум How to use the SleepyCat BerkleyDB? (2006)
- Форум не понял что написал на c++ (2019)
- Форум C++ IOstream Library и вывод сообщений об ошибках (2009)
- Форум /det/ttyACM0 -> /dev/ttyGS0 (2010)
- Форум Валится на throw (2005)
- Форум 100% загрузка CPU при выводе в XTerm (2009)
- Форум constexpr массивы в c++ (2018)
- Форум Сокеты, Передача данных, C/C++ (2006)
- Форум проблемы с std::variant of lambda (2020)
- Форум нет декларации result в этой области видимости.[C++] (2012)