Chinaunix首页 | 论坛 | 博客
  • 博客访问: 846238
  • 博文数量: 156
  • 博客积分: 6553
  • 博客等级: 准将
  • 技术积分: 3965
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-22 18:36
文章存档

2012年(3)

2011年(43)

2010年(110)

分类: 数据库开发技术

2011-01-10 16:08:00

#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;
}

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

chinaunix网友2011-03-08 13:05:25

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com