Qt之sqlite:获取数据库中的表名和表结构(源码共享)

Qt之sqlite:获取数据库中的表名和表结构(源码共享),第1张

概述需求:获取指定数据库的结构。包括数据库中的所有表和表的结构(即表名,字段名,字段类型等信息) 平台:vs2013+Qt 数据库驱动:sqlite 关键之处: PRAGMA table_info( strTableNmae ) 源码分享: #include <QtCore/QCoreApplication>#include <QSqlDatabase>#include <QSql>#inclu

需求:获取指定数据库的结构。包括数据库中的所有表和表的结构(即表名,字段名,字段类型等信息)

平台:vs2013+Qt

数据库驱动:sqlite

关键之处:PRAGMA table_info( strtableNmae )

源码分享:

#include <QtCore/QCoreApplication>#include <QsqlDatabase>#include <Qsql>#include <QString>#include <QStringList>#include <QDeBUG>#include <QStringListIterator>#include <Qsqlquery>#include <QsqlError>bool outPuttableInfo(QString tableNmae);bool outputDatabaseInfo(QsqlDatabase databasename);int main(int argc,char *argv[]){    QCoreApplication a(argc,argv);        QsqlDatabase database = QsqlDatabase::addDatabase("QsqlITE");    database.setDatabasename("cashregistersystem.db");    outputDatabaseInfo(database);        return a.exec();}bool outputDatabaseInfo(QsqlDatabase database){    if (database.open())    {        qDeBUG() << "Open database success!";        QStringList tables = database.tables();  //获取数据库中的表        qDeBUG() << QString::fromLocal8Bit("表的个数: %1").arg(tables.count()); //打印表的个数        QStringListIterator itr(tables);        while (itr.hasNext())        {            QString tableNmae = itr.next().tolocal8Bit();            qDeBUG() << QString::fromLocal8Bit("表名:")+ tableNmae;                        outPuttableInfo(tableNmae);        }    }    else    {        qDeBUG() << "Open database Failed!";        return false;    }    return true;}bool outPuttableInfo(QString tabNmae){    Qsqlquery query;    QString strtableNmae = tabNmae;    QString str = "PRAGMA table_info(" + strtableNmae + ")";        query.prepare(str);    if (query.exec())    {        while (query.next())        {            qDeBUG() << QString(QString::fromLocal8Bit("字段数:%1     字段名:%2     字段类型:%3")).arg(query.value(0).toString()).arg(query.value(1).toString()).arg(query.value(2).toString());        }    }    else    {        qDeBUG() << query.lastError();        return false;    }    return true;}

运行截图:



Qt之 *** 作数据库(SQLite)实例:http://blog.csdn.net/rl529014/article/details/52127173


C++编程技术交流群:302558294(学习是一个互相帮助、不断进步的过程;不论你是大牛还是菜鸟,都期待你的加入) 总结

以上是内存溢出为你收集整理的Qt之sqlite:获取数据库中的表名和表结构(源码共享)全部内容,希望文章能够帮你解决Qt之sqlite:获取数据库中的表名和表结构(源码共享)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存