Linux下sqlite数据库操作-<一> 表的检测,创建,删除。

来源:未知 责任编辑:智问网络 发表时间:2013-11-12 17:22 点击:
<一> 表的检测,创建,删除。 
 
#include <stdio.h> 
#include <stdbool.h> 
#include <stdlib.h>  
#include <string.h> 
#include <sqlite3.h> 
 
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; 


摘自 杨小卫专栏
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Request.ServerVariables 参数大全
    • 执行全文索引时出现权限不足的解决方法
    • 导入excel文件处理流程节点的解决方案
    • 查看sql修改痕迹(SQL Change Tracking on Table)
    • App数据层设计及云存储使用指南
    • PostgreSQL启动过程中的那些事三:加载GUC参数
    • MongoDB安装为Windows服务方法与注意事项
    • Percolator与分布式事务思考(二)
    • 写给MongoDB开发者的50条建议Tip1
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1