本文整理汇总了C++中db_create函数的典型用法代码示例。如果您正苦于以下问题:C++ db_create函数的具体用法?C++ db_create怎么用?C++ db_create使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了db_create函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: open_db
/* Open a Berkeley DB database */
int
open_db(DB **dbpp, const char *progname, const char *file_name,
DB_ENV *envp, u_int32_t extra_flags)
{
int ret;
u_int32_t open_flags;
DB *dbp;
/* Initialize the DB handle */
ret = db_create(&dbp, envp, 0);
if (ret != 0) {
fprintf(stderr, "%s: %s\n", progname,
db_strerror(ret));
return (EXIT_FAILURE);
}
/* Point to the memory malloc'd by db_create() */
*dbpp = dbp;
if (extra_flags != 0) {
ret = dbp->set_flags(dbp, extra_flags);
if (ret != 0) {
dbp->err(dbp, ret,
"open_db: Attempt to set extra flags failed.");
return (EXIT_FAILURE);
}
}
/* Now open the database */
open_flags = DB_CREATE | /* Allow database creation */
DB_READ_UNCOMMITTED | /* Allow dirty reads */
DB_AUTO_COMMIT | /* Allow autocommit */
DB_THREAD; /* Cause the database to be free-threaded */
ret = dbp->open(dbp, /* Pointer to the database */
NULL, /* Txn pointer */
file_name, /* File name */
NULL, /* Logical db name */
DB_BTREE, /* Database type (using btree) */
open_flags, /* Open flags */
0); /* File mode. Using defaults */
if (ret != 0) {
dbp->err(dbp, ret, "Database '%s' open failed",
file_name);
return (EXIT_FAILURE);
}
return (EXIT_SUCCESS);
}
示例2: openDB
int openDB(DB **dbp, char *num )
{
int ret = 0;
if ( (ret = db_create(dbp,NULL,0)) != 0 )
{
printf("create the database failed!\n");
exit(1);
}
if ( (ret = (*dbp)->open(*dbp,NULL,DATABASE,NULL,DB_BTREE,DB_CREATE,atoi(num))) != 0 )
{
(*dbp)->err(*dbp,ret,"$s",DATABASE);
exit(1);
}
return 0;
}
示例3: init_db
local int init_db(int write)
{
int err;
if ((err = db_env_create(&dbenv, 0)))
{
fprintf(stderr, "db_env_create: %s\n", db_strerror(err));
return -1;
}
if ((err = dbenv->open(
dbenv,
ASSS_DB_HOME,
DB_INIT_CDB | DB_INIT_MPOOL,
0644)))
{
fprintf(stderr, "dbenv->open: %s\n", db_strerror(err));
goto close_env;
}
if ((err = db_create(&db, dbenv, 0)))
{
fprintf(stderr, "db_create: %s\n", db_strerror(err));
goto close_env;
}
if ((err = db->open(
db,
#if DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1
/* they added a transaction parameter to the db->open
* call in 4.1.0. */
NULL,
#endif
ASSS_DB_FILENAME,
NULL,
DB_BTREE,
(args.needwrite ? 0 : DB_RDONLY),
0644)))
{
fprintf(stderr, "db->open: %s\n", db_strerror(err));
goto close_db;
}
return 0;
close_db:
db->close(db, 0);
close_env:
dbenv->close(dbenv, 0);
return -1;
}
示例4: dInsert_CONDResult
int dInsert_CONDResult(char* szAlm, char* szMsg, int dLen, unsigned char ucTAMID, unsigned char ucTAFID)
{
int dRet;
char szIQuery[1024], szCQuery[1024];
st_almsts *palm;
//memset( szIQuery, 0x00, 1024 );
//memset( szCQuery, 0x00, 1024 );
palm = (st_almsts*)szAlm;
getInsertQuery(szIQuery, szAlm, szMsg, ucTAMID, ucTAFID);
if( (dRet = db_insert(&stMySQL, szIQuery)) < 0 ){
switch( db_errno(&stMySQL) ){
case E_DB_NOT_CONNECT:
log_print(LOGN_WARN, LH"FAILED IN connect DB",LT);
break;
case E_DB_TABLE_NOT_EXIST:
getCreateQuery(szCQuery);
if( (dRet = db_create(&stMySQL, szCQuery)) == 0 ){
if( (dRet = db_insert(&stMySQL, szIQuery)) < 0 ){
log_print(LOGN_CRI, LH"ERROR IN db_insert(SYS_COND_MSG), dRet=%d\nQuery=%s",
LT, dRet,szIQuery);
return dRet;
}
log_print(LOGN_CRI, LH"SUCCESS IN db_created(SYS_COND_MSG)",LT);
}
log_print(LOGN_CRI, LH"ERROR IN db_create(SYS_COND_MSG), dRet=%d",
LT, dRet);
break;
case E_DB_DUPLICATED_ENTRY:
log_print(LOGN_WARN, LH"FAILED IN db_insert(DUPLICATED)",LT);
vErrPrint(szAlm, szMsg, ucTAMID, ucTAFID);
return 0;
break;
default:
log_print(LOGN_CRI, LH"FAILED IN db_insert(), dRet=%d", LT, dRet);
vErrPrint(szAlm, szMsg, ucTAMID, ucTAFID);
break;
}
return dRet;
}
log_print(LOGN_DEBUG,"SUCCESS INSERT COND MSG TO DB\nQuery=%s",szIQuery);
return 0;
}
示例5: DeletePersistentClass
void
DeletePersistentClass(char *name)
{
int errno;
DBT key,value;
DB *dbp;
struct CfState state;
time_t now = time(NULL),expires;
char filename[CF_BUFSIZE];
snprintf(filename,CF_BUFSIZE,"%s/%s",g_vlockdir,CF_STATEDB_FILE);
if ((errno = db_create(&dbp,NULL,0)) != 0) {
snprintf(g_output, CF_BUFSIZE,
"Couldn't open average database %s\n", filename);
CfLog(cferror,g_output,"db_open");
return;
}
#ifdef CF_OLD_DB
if ((errno = dbp->open(dbp,filename,NULL,DB_BTREE,
DB_CREATE,0644)) != 0)
#else
if ((errno = dbp->open(dbp,NULL,filename,NULL,DB_BTREE,
DB_CREATE,0644)) != 0)
#endif
{
snprintf(g_output,CF_BUFSIZE,"Couldn't open average database %s\n",filename);
CfLog(cferror,g_output,"db_open");
return;
}
chmod(filename,0644);
memset(&key,0,sizeof(key));
memset(&value,0,sizeof(value));
key.data = name;
key.size = strlen(name)+1;
if ((errno = dbp->del(dbp,NULL,&key,0)) != 0) {
CfLog(cferror,"","db_store");
}
Debug("Deleted persistent state %s if found\n",name);
dbp->close(dbp,0);
}
示例6: bdb_db_open
void bdb_db_open(void) {
int ret;
int db_open = 0;
/* for replicas to get a full master copy, then open db */
while(!db_open) {
/* if replica, just scratch the db file from a master */
if (1 == bdb_settings.is_replicated) {
if (MDB_CLIENT == bdb_settings.rep_whoami) {
bdb_settings.db_flags = DB_AUTO_COMMIT;
} else if (MDB_MASTER == bdb_settings.rep_whoami) {
bdb_settings.db_flags = DB_CREATE | DB_AUTO_COMMIT;
} else {
/* do nothing */
}
}
bdb_db_close();
if ((ret = db_create(&dbp, env, 0)) != 0) {
fprintf(stderr, "db_create: %s\n", db_strerror(ret));
exit(EXIT_FAILURE);
}
/* set page size */
if((ret = dbp->set_pagesize(dbp, bdb_settings.page_size)) != 0) {
fprintf(stderr, "dbp->set_pagesize: %s\n", db_strerror(ret));
exit(EXIT_FAILURE);
}
/* try to open db*/
ret = dbp->open(dbp, NULL, bdb_settings.db_file, NULL, bdb_settings.db_type, bdb_settings.db_flags, 0664);
switch (ret) {
case 0:
db_open = 1;
break;
case ENOENT:
case DB_LOCK_DEADLOCK:
case DB_REP_LOCKOUT:
fprintf(stderr, "db_open: %s\n", db_strerror(ret));
sleep(3);
break;
default:
fprintf(stderr, "db_open: %s\n", db_strerror(ret));
exit(EXIT_FAILURE);
}
}
}
示例7: init_experiment
int init_experiment(char *store_name)
{
unsigned long env_flags, open_flags;;
int rval;
env_flags = DB_CREATE|DB_INIT_MPOOL;
if (log_flag == 1) {
env_flags |= DB_RECOVER|DB_INIT_TXN|DB_INIT_LOG;
}
//env_flags |= DB_THREAD|DB_INIT_LOCK;
if (db_env_create(&db_env, 0) != 0) {
printf("[BDB] db_env_create() fail!\n");
return 0;
}
//rval = envp->set_lk_detect(db_env, DB_LOCK_MINWRITE);
//rval = envp->set_lk_max_locks(db_env, 10000);
//rval = envp->set_lk_max_objects(db_env, 10000);
val = db_env->set_cachesize(db_env, 0, 1024*1024*1024, 1); // 0G + 1024M
if (db_env->open(db_env, DB_DIRECTORY, env_flags, 0) != 0) {
printf("[BDB] db_env->open() fail!\n");
db_env->close(db_env, 0);
return 0;
}
if(db_create(&db, db_env, 0) != 0) {
printf("[BDB] db_create() fail!\n");
return 0;
}
open_flags = DB_CREATE;
if (log_flag == 1) {
open_flags |= DB_AUTO_COMMIT;
}
if (kv_type == BTREE) {
rval = db->open(db, NULL, store_name, NULL, DB_BTREE, open_flags, 0);
} else if (kv_type == HASH) {
rval = db->open(db, NULL, store_name, NULL, DB_HASH, open_flags, 0);
}
if (rval != 0) {
printf("[BDB] db->open() fail!\n");
return 0;
}
return 1;
}
示例8: main
int main() {
size_t i;
obj *op;
db* db = db_create(16);
cstr k = cstr_new("1", 1);
obj* obj = cstr_obj_create("2");
db_set(db, 0, k, obj);
for(i = 0; i < 1; i++) {
op = db_get(db, 0, k);
obj_decr(op);
op = db_get(db, 0, k);
obj_decr(op);
op = db_get(db, 0, k);
obj_decr(op);
}
return 0;
}
示例9: scanscan_setup
static void scanscan_setup (void) {
int r;
r = db_env_create(&env, 0); assert(r==0);
r = env->set_cachesize(env, 0, cachesize, 1); assert(r==0);
r = env->open(env, dbdir, do_txns? env_open_flags_yesx : env_open_flags_nox, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); assert(r==0);
r = db_create(&db, env, 0); assert(r==0);
if (do_txns) {
r = env->txn_begin(env, 0, &tid, 0); assert(r==0);
}
r = db->open(db, tid, dbfilename, NULL, DB_BTREE, 0, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); assert(r==0);
#ifdef TOKUDB
if (prelock) {
r = db->pre_acquire_table_lock(db, tid);
assert(r==0);
}
#endif
}
示例10: prepare_db
static int
prepare_db()
{
int rc;
rc = db_create(&db, dbenv, 0);
if (rc)
log_db_error("db_create", rc);
else {
rc = db_open(db, DB_FILE_NAME, NULL, DB_BTREE, DB_CREATE, 0644);
if (rc) {
log_db_error("db->open", rc);
db->close(db, 0);
db = 0;
}
}
return rc;
}
示例11: initialize_db
db* initialize_db(const char* db_name, uint32_t flag){
db* db_ptr = NULL;
DB* b_db;
DB_ENV* dbenv;
int ret;
char* full_path = NULL;
if((ret = mkdir(db_dir,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)) != 0){
if(errno!=EEXIST){
con_err_log("DB : Dir Creation Failed\n");
goto db_init_return;
}
}
full_path = (char*)malloc(strlen(db_dir) + strlen(db_name) + 2);
mk_path(full_path, db_dir, db_name);
if ((ret = db_env_create(&dbenv, 0)) != 0) {
dbenv->err(dbenv, ret, "Environment Created: %s", db_dir);
goto db_init_return;
}
if ((ret = dbenv->open(dbenv, db_dir, DB_CREATE|DB_INIT_CDB|DB_INIT_MPOOL|DB_THREAD, 0)) != 0) {
//dbenv->err(dbenv, ret, "Environment Open: %s", db_dir);
goto db_init_return;
}
/* Initialize the DB handle */
if((ret = db_create(&b_db,dbenv,flag)) != 0){
con_err_log("DB : %s.\n", db_strerror(ret));
goto db_init_return;
}
if((ret = b_db->open(b_db, NULL, db_name, NULL, DB_BTREE, DB_THREAD|DB_CREATE,0)) != 0){
//b_db->err(b_db,ret,"%s","test.db");
goto db_init_return;
}
db_ptr = (db*)(malloc(sizeof(db)));
db_ptr->bdb_ptr = b_db;
db_init_return:
if(full_path != NULL){
free(full_path);
}
if(db_ptr != NULL){
;
}
return db_ptr;
}
示例12: db_init
static int db_init(DB_ENV *dbenv, DB **dbp)
{
int ret;
/* Initialize the database. */
if((ret = db_create(dbp, dbenv, 0)) != 0)
{
dbenv->err(dbenv, ret, "db_create");
(void)dbenv->close(dbenv, 0);
return 1;
}
if((ret = (*dbp)->set_re_len(*dbp, REC_SIZE)) != 0)
{
(*dbp)->err(*dbp, ret, "set_re_source");
goto err;
}
if((ret = (*dbp)->set_q_extentsize(*dbp, 1000)) != 0)
{
(*dbp)->err(*dbp, ret, "set_q_extentsize");
goto err;
}
#if USE_TXN
if((ret = (*dbp)->open(*dbp, NULL, DATABASE, NULL, DB_QUEUE,
DB_AUTO_COMMIT | DB_CREATE | DB_THREAD, 0664)) != 0)
#else
if((ret = (*dbp)->open(*dbp, NULL, DATABASE, NULL, DB_QUEUE,
DB_CREATE | DB_THREAD, 0664)) != 0)
#endif
{
(*dbp)->err(*dbp, ret, "%s: open", DATABASE);
goto err;
}
return 0;
err:
(void)(*dbp)->close(*dbp, 0);
(void)dbenv->close(dbenv, 0);
return 1;
}
示例13: sess_db_open
static int
sess_db_open (void)
{
uint32_t flags;
int rc;
rc = db_create(&sess_db, NULL, 0);
if (rc) {
ERR("db_create(): %s %d\n", db_strerror(rc), rc);
return (-1);
}
flags = DB_CREATE;
rc = sess_db->open(sess_db, NULL, "sessions.db", NULL, DB_BTREE, flags, 0);
if (rc) {
ERR("db_open(): %s (%d)\n", db_strerror(rc), rc);
return (-1);
}
return (0);
}
示例14: main
int
main(int argc, char **argv)
{
int ret;
if (argc < 2)
errx(1, "Usage: ./prog command");
if ((ret = db_create(&maindb, NULL, 0)) != 0) {
err(1, "db_create: %s\n", db_strerror(ret));
}
if ((ret = maindb->set_cachesize(maindb, 0, dbCashe, dbCasheBlokes)) != 0) {
maindb->err(maindb, ret, "set_cachesize");
}
if ((ret = maindb->open(maindb, NULL, THEDB, NULL, DB_BTREE, DB_RDONLY, 0664)) != 0) {
maindb->err(maindb, ret, "%s", "db/maindb");
exit(1);
}
if (strcmp(argv[1], "distinct") == 0) {
int cutoff = 10;
if (argc >= 3)
cutoff = atoi(argv[2]);
print_distinct(cutoff);
} else if (strcmp(argv[1], "all") == 0) {
print_all();
} else if (strcmp(argv[1], "list") == 0) {
printf("Commands:\n\n");
printf("distinct [cutoff]\n");
}
if (maindb->close(maindb, 0) != 0)
return 1;
return 0;
}
示例15: open_table
int open_table (void **db, char *table) {
int ret;
DB *dbp = NULL;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
fprintf(stderr, "db_create: %s\n", db_strerror(ret));
exit (1);
}
if ((ret = dbp->open(
dbp, NULL, table, NULL, DB_BTREE, DB_CREATE, 0)) != 0) {
dbp->err(dbp, ret, "%s", table);
exit (1);
}
*db = dbp;
return ES_OK;
}