sqlite3_get_table - 测试表的存在?

时间:2017-01-08 01:40:13

标签: c++ sql sqlite

我有以下代码和sql字符串,其中我的错误已在另一篇文章中得到解决。 基本上,这个函数测试表是否存在。那就是它。

我发布了以下相关部分。出于某种原因,即使数据库中没有该表,我的函数总是告诉我该表存在吗?

关于我在这里做错了什么的线索..这可能是我使用sqlite3_get_table的返回值的方式吗?

string sql_string =  "SELECT name FROM sqlite_master WHERE type = 'table' AND name='test_table';";




   // open database

dbase_return = sqlite3_open_v2(dbase_path.c_str(),&DBHANDLE,SQLITE_OPEN_READWRITE,NULL);

 if(!dbase_return)
    {

   dbase_return_tbl = sqlite3_get_table(DBHANDLE,sql_string.c_str(),&result,&row,&column,&error_msg);



        if(dbase_return_tbl==SQLITE_OK)
        { 
            cout << " Table exists" << endl;
            sqlite3_close(DBHANDLE);
            return 1;
        }
        else
        {

            cout << "Table doesn't exists" << endl;
           sqlite3_close(DBHANDLE);
            return 0;
        }

    }

0 个答案:

没有答案