BDB讀 寫 刪除 更新事物的簡單例子。

2021-04-08 20:13:03 字數 3369 閱讀 8514

#include

#include

#include

#include

#include

int fun_main(int ,int ,int);

int  generate_db_data(); //生成資料庫

int output_db_data();  //輸出資料庫

int operate_db_data();  //對資料庫的操作選擇

int db_insert();     //插入

int db_delete();   //刪除

int db_modify();    //修改

int db_seach();   //查詢

void print_error(int ret)

void init_dbt(dbt * key, dbt * data)

int main(int argc, char *argv)

while(*argv[1] != '/0')

else if(*argv[1] == 'g')

generate = 1;

else if(*argv[1] == 'o')

output = 1;

else if(*argv[1] == 'p')

process = 1;

argv[1]++;

}ret = fun_main(generate, output, process);

exit(ret);

}int fun_main(int generate, int output, int process)

if(output == 1&& process != 1)

if(process == 1)

if(generate == 0 && output == 0 && process == 0)

return ret;

}int generate_db_data()

if(dbp1 != null)

dbp1->close(dbp1, 0);

dbenv->close(dbenv, 0);

return 0;

}int output_db_data()

ret = cur1->c_close(cur1);

print_error(ret);

ret = txn1->commit(txn1, 0);

print_error(ret);

if(dbp1 != null)

dbp1->close(dbp1, 0);

dbenv->close(dbenv, 0);

return 0;

}int operate_db_data()

return ret;

}int db_insert()

;int number;

printf("please input the data and value :");

scanf("%s%d",name,&number);

printf("you insert data : the fruit =/"%s/", the number = /"%d/"/n",name,number);

ret = db_env_create(&dbenv, 0);

print_error(ret);

ret = dbenv->open(dbenv, "./dbtestenv", db_create|db_init_log|db_init_lock| db_init_mpool|db_init_txn, 0);

print_error(ret);

ret = db_create(&dbp1, dbenv, 0);

print_error(ret);

flags = db_create;

ret = dbp1->open(dbp1, null, "single.db", null, db_btree, flags, 0);

print_error(ret);

init_dbt(&key, &data);

key.data = name;

key.size = strlen(name) + 1;

data.data = &number;

data.size = sizeof(int);

ret = dbp1->put(dbp1, null, &key, &data, db_nooverwrite);

print_error(ret);

if(ret == 0)

printf("insert success!/n");

else

printf("insert failed!/n");

if(dbp1 != null)

dbp1->close(dbp1, 0);

dbenv->close(dbenv, 0);

return ret;

}int db_delete()

int db_modify()

init_dbt(&key, &data);

key.data = name_new;

key.size = strlen(name_new) + 1;

data.data = &number;

data.size = sizeof(int);

ret = dbp1->put(dbp1, txn1, &key, &data, db_nooverwrite);

if(ret == 0)

printf("modify success!/n");

else

printf("modify failed!/n");

ret = cur1->c_close(cur1);

print_error(ret);

ret = txn1->commit(txn1, 0);

print_error(ret);

if(dbp1 != null)

dbp1->close(dbp1, 0);

dbenv->close(dbenv, 0);

return 0;

}int db_seach()

if(ret != 0)

printf("the data which you want cannot found./n");

ret = cur1->c_close(cur1);

print_error(ret);

ret = txn1->commit(txn1, 0);

print_error(ret);

if(dbp1 != null)

dbp1->close(dbp1, 0);

dbenv->close(dbenv, 0);

return 0;

Cookie 讀,寫,刪除操作

cookie的幾種常見屬性 document.cookie key value expires 失效時間 path 路徑 domain 域名 secure secure表安全級別 name cookie date 2018 04 12 寫入cookie setcookie name admin,m4...

級聯刪除和更新

1.建立表時新增on delete cascade,on update cascade create table goods gid int primary key,gname varchar 10 gprice money insert into goods values 101,nokia 12...

GridView更新 刪除 分頁

protected void page load object sender,eventargs e 上面的 對更新操作的時候十分重要,否則更新的時候可能取的不是最新的值。繫結資料 public void bind 主鍵 sqlcon.close 編輯 protected void gridview...

hibernate級聯刪除 更新

hibernate操作只支援操作自己的查詢物件。這是關鍵,而且物件關聯也只能是自己建立的,可以更改,但不可以被覆蓋,可以清空!sysrole.getsysrole powerlist clear 1這個表示去掉他們的級聯關係,才能刪除他的級聯中的物件,不然關鍵不對稱 for int i 0 i 2所...

查詢插入(更新 刪除)

查詢插入 更新 可用於刷資料,新建一箇中間表,匯入資料,再把資料刷到目標表上 一 mysql 1 查詢插入 把一個資料表查詢的結果插入另一個表 insert into t user project1 user id,project id,is delete,create time,update ti...