C++操作sqlite3數據庫示例代碼

wn25 9年前發布 | 12K 次閱讀 C/C++ SQLite3

一個簡單的使用sqlite3數據庫的電話薄,很簡單適合初學者看看,而且里面并沒有很多容錯處理很容易看懂的。

#include<stdio.h>

include"sqlite3.h"

static int callback(void notused,int l,char v,char lname); int seek(sqlite3 db); int insert(sqlite3 db); int replace(sqlite3 db); int del(sqlite3 db); int option(sqlite3 db); int quit(sqlite3 db); int main() {
int num; int rc; struct sqlite3
db; rc=sqlite3_open("sql.db",&db); if(rc) { printf("成功打開數據庫"); } else printf("數據庫打開失敗"); num=option(db); quit(db); } int option(sqlite3 db) { int num; int rc; printf("\t1.查詢\n\t2.添加記錄\n\t3.更新記錄\n\t4.刪除記錄\n\t5.清屏\n\t6.創建表\n\t7.退出\n"); printf("請輸入:"); scanf("%d",&num); switch (num) { case 1:seek(db); break; case 2:rc=insert(db); break; case 3:replace(db); break; case 4:del(db); break; case 5: { system("cls"); option(db); } case 6: { rc=sqlite3_exec(db,"CREATE TABLE telbook(name,telnum)",0,0,NULL); printf("%d\n",rc); } break; case 7:{ printf("即將關閉\n"); quit(db); } break; default: { printf("請選擇?\n"); option(db); } break; } } int seek(sqlite3 db) { int num; int rc; char zSQL; char sql_name[20],sql_telnum[11]; printf("\t1.根據名字查找\n\t2.根據電話查找\n\t3.顯示所有\n\t4.回上級目錄"); scanf("%d",&num); switch (num) { case 1: { printf("請輸入名字:"); scanf("%s",sql_name); zSQL= sqlite3_mprintf("select from telbook where name='%q'", sql_name); rc=sqlite3_exec(db,zSQL,callback,0,NULL); sqlite3_free(zSQL); } break; case 2: { printf("請輸入電話"); scanf("%s",sql_telnum); zSQL= sqlite3_mprintf("select from telbook where telnum='%q'", sql_telnum); rc=sqlite3_exec(db,zSQL,callback,0,NULL); sqlite3_free(zSQL); } break; case 3:rc=sqlite3_exec(db,"select from telbook",callback,0,NULL); break; case 4:option(db); break; default : { printf("請選擇要執行的操作\n"); option(db); } } printf("%d\n",rc); option(db); } int insert(sqlite3 db) { int rc; char sql_name[20],sql_telnum[11]; printf("輸入姓名和電話以空格分隔:"); scanf("%s %s",sql_name,sql_telnum); char zSQL; zSQL= sqlite3_mprintf("INSERT INTO telbook VALUES('%q','%q')", sql_name,sql_telnum); rc=sqlite3_exec(db,zSQL,0,0,NULL); sqlite3_free(zSQL); printf("%d\n",rc); option(db); return 0; } int replace(sqlite3 db) { int rc; char sql_name[20],sql_telnum[11]; printf("請輸入名字和新電話號碼:"); scanf("%s %s",sql_name,sql_telnum); char zSQL; zSQL= sqlite3_mprintf("update telbook set telnum='%q' where name='%q'", sql_telnum,sql_name); rc=sqlite3_exec(db,zSQL,0,0,NULL); sqlite3_free(zSQL); printf("%d\n",rc); option(db); return 0; } int del(sqlite3 db) { int rc; char sql_name[20],sql_telnum[11]; printf("請輸入要刪除的姓名:"); scanf("%s",sql_name); char zSQL; zSQL= sqlite3_mprintf("DELETE FROM telbook where name='%q'", sql_name); rc=sqlite3_exec(db,zSQL,0,0,NULL); sqlite3_free(zSQL); printf("%d\n",rc); option(db); return 0; } int quit(sqlite3 db) { int rc; rc=sqlite3_close(db); if (rc) { printf("成功關閉數據庫\n"); } else printf("關閉失敗\n"); system("pause"); exit(1); } static int callback(void notused,int l,char v,char lname) { int i; for (i=0;i<l;i++) { printf("%s\t",v[i]); } printf("\n"); return 0; } </pre>

 本文由用戶 wn25 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!