sqlite3 判断数据库和表的状态

前端之家收集整理的这篇文章主要介绍了sqlite3 判断数据库和表的状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. @H_403_7@
     1、判断数据库是否存在,如果存在rc!=0 否则==0 ,同时数据库不存在的话也不会创建caen.db3,此处与sqlite3_open不用! =》rc = sqlite3_open_v2("caen.db3",&db,sqlITE_OPEN_READWRITE,NULL); 
     
    

    2、判断数据库中某个表的存在,如果sql执行成功zErrMsg=NULL,否则给出错误信息:no sucn table:表名

    1. char*zErrMsg;
    2. char*sqls="SELECT*FROMBaseInfo";
    3. char*datatable;
    4. intnRow;
    5. intnColumn;
    6. /**判断有没有这张表**/
    7. if(sqlite3_get_table(db,sqls,&datatable,&nRow,&nColumn,&zErrMsg)!=NULL){
    8. @H_403_7@

    sqlite3_get_table使用举例

    void GetTable()
    {
    sqlite3 * db;
    int result;
    char * errmsg = NULL;
    char **dbResult; //是 char ** 类型,两个*号
    int nRow,nColumn;
    int i,j;
    int index;
    result = sqlite3_open( “c:\\Dcg_database.db”,&db );
    if( result != sqlITE_OK )
    {
    //数据库打开失败
    return -1;
    }
    //数据库操作代码
    //假设前面已经创建了 MyTable_1 表
    //开始查询,传入的 dbResult 已经是 char **,这里又加了一个 & 取地址符,传递进去的就成了 char ***
    result = sqlite3_get_table( db,“select * from MyTable_1”,&dbResult,&errmsg );
    if( sqlITE_OK == result )
    {
    //查询成功
    index = nColumn; //前面说过 dbResult 前面第一行数据是字段名称,从 nColumn 索引开始才是真正的数据
    printf( “查到%d条记录\n”,nRow );
    for( i = 0; i < nRow ; i )
    {
    printf( “第 %d 条记录\n”,i 1 );
    for( j = 0 ; j < nColumn; j )
    {
    printf( “字段名:%s ?> 字段值:%s\n”,dbResult[j],dbResult [index] );
    index; // dbResult 的字段值是连续的,从第0索引到第 nColumn - 1索引都是字段名称,从第 nColumn 索引开始,后面都是字段值,它把一个二维的表(传统的行列表示法)用一个扁平的形式来表示
    }
    printf( “-------\n” );
    }
    }
    //到这里,不论数据库查询是否成功,都释放 char** 查询结果,使用 sqlite 提供的功能来释放
    sqlite3_free_table( dbResult );
    sqlite3_close( db );
    return 0;
    }
    }*/

猜你在找的Sqlite相关文章