Chinaunix首页 | 论坛 | 博客

OS

  • 博客访问: 2280771
  • 博文数量: 691
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2660
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-05 12:49
个人简介

不浮躁

文章分类

全部博文(691)

文章存档

2019年(1)

2017年(12)

2016年(99)

2015年(207)

2014年(372)

分类: 数据库开发技术

2014-12-09 09:16:42

#include
#include
#include

//回调函数
int ListTablesName_callback(void *pDB, int argc, char **argv, char **azColName)
{
    int ret;
    char pSqlQuerySel[128] = "select * from ";
    char *pError = NULL;
    sqlite3_stmt *pStmt = NULL;
    
    strcat(pSqlQuerySel, argv[0]);   
    fprintf(stdout, "%s\n", pSqlQuerySel);
   
        //准备读取数据
    ret = sqlite3_prepare((sqlite3 *)pDB, pSqlQuerySel, strlen(pSqlQuerySel), &pStmt, (const char**)&pError);
    if (ret != SQLITE_OK)
    {
        fprintf(stderr, "sqlite3_prepare fail\n");
        return -1;
    }
   
    while (1)
    {
        ret = sqlite3_step(pStmt);        //移动记录集
        if (ret != SQLITE_ROW)
            break;
       
        fprintf(stdout, "%d ", sqlite3_column_int(pStmt, 0));
        fprintf(stdout, "%s \n", sqlite3_column_text(pStmt, 1));       
    }
   
    return 0;
}

int main()
{
    int ret = 0;
    sqlite3 *pDB = NULL;
    sqlite3_stmt *pStmt = NULL;
    char *pError = NULL;
    char *pListTablesNameSel = (char*)"SELECT name FROM sqlite_master";//列出所以表名语句
   
    //打开文件
    ret = sqlite3_open("test.db", &pDB);
    if (ret != SQLITE_OK)
    {
        fprintf(stderr, "can't open database : %s\n", sqlite3_errmsg(pDB));

        sqlite3_close(pDB);
        return -1;
    }

  //查找源文件中所有表名   
    ret = sqlite3_exec(pDB, pListTablesNameSel, ListTablesName_callback, pDB, &pError);
    if (ret != SQLITE_OK)
    {
        fprintf(stderr, "list table count error: %s", sqlite3_errmsg(pDB));

        sqlite3_close(pDB);
        return -1;
    }

    return 0;
}

阅读(1292) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~