sqlite3查看数据库中有哪些表(代码)

说实话,用代码实现sqlite3查看数据库中有哪些表我还真的没找到现成资源,网上提供的语句还真用不了《sqlite3查看数据库中有哪些表(代码)》,而且大多都是命令行语句,由于的做的MFC项目要用到这个功能,特意学习了下,下面分享我的成果,希望可以帮到你.

环境:VS2005

#include "sqlite3.h"
#include <iostream>
#include "string.h"

#pragma comment(lib,"sqlite_win32_dll.lib")

using namespace std;

int main()
{ 
	sqlite3 * datb = NULL;                  //要定义全局变量
	int ret = sqlite3_open("demo.db",&datb);
	if(ret == SQLITE_OK)
	{
		cout << "demo.db打开成功!" << endl;
	}
	else
	{
		cout << "demo.db打开失败!" << endl;
		return 0;
	}
	char * errmsg;                             //要定义全局变量

	char str3[1024] = {"create table "};
	char * str11 = "List";
	strcat(str3,str11);
	char *str2 = "(id int primary key,name text)";
	strcat(str3,str2);
	char sql[1024] = {0};
	sprintf(sql,"drop table if exists %s",str11);
	sqlite3_exec(datb,sql,NULL,NULL,&errmsg);  //在创建表时,如果表存在,则删除
	
	ret = sqlite3_exec(datb,str3,NULL,NULL,&errmsg);

	
	if(ret == SQLITE_OK)
	{
		cout << "demoF表创建成功!" << endl;
	}
	//插入记录
	const char * str7 = "insert into demoF values(1,'zhang')";
	const char * str8 = "insert into demoF values(2,'li')";
	const char * str9 = "insert into demoF values(3,'wang')";
	const char * str10 = "insert into demoF values(4,'cheng')";
        sqlite3_exec(datb,str7,NULL,NULL,&errmsg);
	sqlite3_exec(datb,str8,NULL,NULL,&errmsg);
	sqlite3_exec(datb,str9,NULL,NULL,&errmsg);
	sqlite3_exec(datb,str10,NULL,NULL,&errmsg);
	//查询表
    char **dbresult;
	int j,nrow,ncolumn,index = 0;
	//ret = sqlite3_get_table(datb,"select name from demo.db where type='U' and name like '%demo%' ",&dbresult,&nrow,&ncolumn,&errmsg);
	//ret = sqlite3_get_table(datb,"select * from all_tables ",&dbresult,&nrow,&ncolumn,&errmsg);
	//ret = sqlite3_get_table(datb,"select name from demo.db where type='table' order by name ",&dbresult,&nrow,&ncolumn,&errmsg);
	ret = sqlite3_get_table(datb,"select name from sqlite_master where type ='table'order by name ",&dbresult,&nrow,&ncolumn,&errmsg);
    if(ret == SQLITE_OK)
	{
		for(int i = 0;i <= nrow; i++)
            /*for(j = 0;j < ncolumn;j++)*/
			{
			    cout <<  dbresult[index] << endl;
		
                index++;
			}
			cout << nrow << ncolumn << endl;

      }

可以看看我试了多少种语句(只有最后一个是有用的《sqlite3查看数据库中有哪些表(代码)》)

运行结果

《sqlite3查看数据库中有哪些表(代码)》

这个结果可以看出表在存的时候是2行1列,那个name是名字提示,下面的List,demoF才是表的真正名字.

如果你能看到我发的博客,那么你还算幸运《sqlite3查看数据库中有哪些表(代码)》因为我被这个功能卡了三个星期(主要是网上资源太乱,而且没有代码实现方法,难受)

    原文作者:痕忆丶
    原文地址: https://blog.csdn.net/qq_37059136/article/details/80519545
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞