linux下sqlite 删除数据库,Linux下sqlite数据库操作 表的检测,创建,删除。 -电脑资料...

该代码示例展示了如何使用SQLite C API来检查数据库中是否存在指定的表格,如果不存在则创建,如果存在则删除表格。主要涉及sqlite3_prepare、sqlite3_step和sqlite3_exec等函数的使用。
摘要由CSDN通过智能技术生成

表的检测,创建,删除,

#include

#include

#include

#include

#include

bool db_tableExists(sqlite3 *db, const char *tbname)

{

int nRet;

const char  *szTail;

sqlite3_stmt *pvm;

char sql[1024];

sprintf(sql, "select count(*) from sqlite_master where type='table' and name='%s'", tbname);

szTail=0;

nRet = sqlite3_prepare(db, sql, -1, &pvm, &szTail);

//printf("nRet=%d SQLITE_OK=%d SQLITE_DONE=%d SQLITE_ROW=%d \n", nRet, SQLITE_OK, SQLITE_DONE,SQLITE_ROW);

if (nRet==SQLITE_OK)

{

nRet=sqlite3_step(pvm);

//printf("nRet=%d SQLITE_OK=%d SQLITE_DONE=%d SQLITE_ROW=%d \n", nRet, SQLITE_OK, SQLITE_DONE,SQLITE_ROW);

if (nRet==SQLITE_ROW)

{

int nCols = sqlite3_column_count(pvm);

//printf("nCols:%d\n", nCols);

if (nCols>=1)

{

return sqlite3_column_int(pvm,0)!=0;

}

}

}

return false;

}

int db_exeDML(sqlite3 *db, const char *sql)

{

char* szError=0;

int nRet = sqlite3_exec(db, sql, 0, 0, &szError);

if (nRet == SQLITE_OK)

{

return sqlite3_changes(db);

}

return SQLITE_ERROR;

}

int main(int argc, char **argv)

{

sqlite3 *db=0;

int nRet = sqlite3_open("temp.db",&db);

if (nRet)

{

fprintf(stderr,"can't open database: %s\n",sqlite3_errmsg(db));

sqlite3_close(db);

exit(1);

}else{

printf("open database ok.\n");

}

if (!db_tableExists(db,"tmp"))

{

printf("create \"tmp\" table\n");

nRet=db_exeDML(db,"CREATE TABLE tmp( IP TEXT, VER TEXT, UID TEXT, FILE TEXT)");

printf("nRet=%d\n", nRet);

}else{

nRet=db_exeDML(db,"delete from tmp");

printf("nRet=%d\n", nRet);

}

sqlite3_close(db);

return 0;

}

摘自 杨小卫专栏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值